Changes

Jump to: navigation, search
no edit summary
==Introduction==
This application note describe how to build the software components required to set up asymmetric multi-processing (AMP for short) . The following configuration required to run Linux OS on first Cortex®-A9 core and FreeRTOS on second Cortex®-A9 core of the Freescale i.MX6 SOC.
The latencystat demo is a RPMsg-based application that exploits sophisticated techniques to handle inter-processors communication and synchronization.
These architectures allows the implementation of processing schemes that were not feasible with traditional single-core CPUs. Among these, one of the most interesting is asymmetric multiprocessing (AMP for short). This configuration permits to address several requirements that the embedded system developers struggle to handle in case of single-core systems.
This application note describes in detail the implementation of Linux/FreeRTOS asymmetric multiprocessing configuration on DAVE Embedded Systems AXEL LITE SoM. This configuration is a typical example about how to leverage AMP flexibility to combine, on one single piece of silicon, the versatility of Linux o.s. for general purpose computation, connectivity and HMI and the determinism of an RTOS to satisfy real-time constraints. Since AXEL family products are all based on Freescale i.MX6 processors, what is described here described applies to AXEL ULTRA too.
As known, AMP allows a multicore system to run simultaneously[1] multiple Operating Systems (OS) that are independent of each other. In other words, each core has its own private memory space, which contains the OS and the applications that are to run on that core. In addition, there can be some shared memory space that is used for inter-core communication. This is in contrast to Symmetric Multiprocessing (SMP), in which one OS runs on multiple cores using a public shared memory space.
* cloning the <code>FreeRTOS</code> repository:
<pre class="board-terminal">
dvdk@dvdk:~/xelk$ git clone git@git.dave.eu :dave/axel/freertos.git
</pre>
* cloning the <code>latencystat</code> repository:
<pre class="board-terminal">
dvdk@dvdk:~/xelk$ git clone git@git.dave.eu :dave/axel/latencystat.git
</pre>
=== Build FreeRTOS ===
For building the FreeRTOS, a proper toolchain has to be used, for example the offical arm linux toolchain [https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads, then enter the following commands:
<pre class="board-terminal">
For building the <code>latercystat</code> example, enter the <code>latecystat</code> directory and then una <code>make</code>:
<pre class="board-terminal">
dvdk@dvdk:~/xelk$ source ~/xelk/env.sh
dvdk@dvdk:~/xelk$ cd latencystat
dvdk@dvdk:~/xelk/latencystat$ make
</pre>
Once all the components are built, please boot the system and launch the following commands:./
<pre class="board-terminal">
170
edits

Navigation menu