Changes

Jump to: navigation, search
no edit summary
** Board Support Package: <code>Create New</code>
** Type: <code>FreeRTOS Hello World AMP template</code>
* Click finish to launch the application build process
* Create the binary from the application ELF chosing one of the following options:
** manually launch the command: <code>arm-xilinx-eabi-objcopy -v -O binary $PROJ_DIR/bora.sdk/SDK/SDK_Export/hellowordl_freeRTOS/Debug/hellowordl_freeRTOS.elf $PROJ_DIR/bora.sdk/SDK/SDK_Export/hellowordl_freeRTOS/Debug/hellowordl_freeRTOS.bin</code>
** configure the automatic binary generation on project build. In Project Explorer, right-click on <code>helloworld_freeRTOS</code> project and select ''C/C++ Build Settings'' and add the command <code>arm-xilinx-eabi-objcopy -v -O binary ${ProjName}.elf ${ProjName}.bin</code> on ''Post-build steps''.
== Documentation ==Building Example #2: RPMsg-based application====The procedure needed to build this application is similar to the one used to build HelloWorld application. The only difference is that the <code>FreeRTOS Latency AMP</code> template must be selected.In this case please note that:* the standard Linux infrastructure will be used to load the firmware for the second core* Linux will start in SMP mode, running on both cores; then CPU1 will be shutdown and FreeRTOS firmware will be loaded and run.This example application exploits TTC1 timer to measure IRQ latencies as described in Xilinx UG978. In addition to that, GPIO0 (pin JP21.16 on BoraEVB) will be toggled every time ISR is invoked.
Please download Once the [httpbuild process is completed, the executable file in .elf format will be generated (we suggest to name it freertos). Creating the .bin file is <u>not required</u>.* Project name: RPMsg_freeRTOS* Hardware Platform: hw_platform_0* Processor: ps7_cortexa9_1* OS Plaftorm: freertos_zynq* Language: C* Board Support Package: Create New* Type:FreeRTOS Latency AMPTo run this example, Linux kernel (1) must be rebuilt too (2). First of all copy the freertos executable file in .elf format (<code>freertos</code>) into the directory firmware of Linux kernel tree (3). Then configure the kernel using <code>bora_amp_defconfig</wwwcode> as configuration file and enter the following command line, that changes the default load address of kernel and launches the building of both the kernel image and the modules:<pre>bash# make UIMAGE_LOADADDR=0x10008000 uImage modules[..dave.eu] OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/sitesboot/defaultzImage is ready UIMAGE arch/filesarm/filesboot/anuImageImage Name: Linux-belk3.9.0-001bora-amp1.1.0-linuxxilinx-freertos00Created: Thu Nov 21 15:55:07 2013Image Type: ARM Linux Kernel Image (uncompressed)Data Size: 3217192 Bytes = 3141.79 kB = 3.07 MBLoad Address: 10008000Entry Point: 10008000 Image arch/arm/boot/uImage is ready</pre>The file <code>arch/arm/boot/uImage</code> is the binary image of the kernel that must be used to boot the system.The following kernel modules, resulting from the kernel build procedure, must be copied from the building directory to the root file system (usually into <code>/lib/modules/<kernel version>/kernel</code>, but any other directory can be used):<pre> LD [M] drivers/remoteproc/remoteproc.ko LD [M] drivers/remoteproc/zynq_remoteproc.ko LD [M] drivers/rpmsg/rpmsg_freertos_statistic.ko LD [M] drivers/rpmsg/virtio_rpmsg_bus.ko LD [M] drivers/virtio/virtio.ko LD [M] drivers/virtio/virtio_ring.ko LD [M] net/rpmsg/rpmsg_proto.ko</pre>For further details on kernel modules, please refer to this [http://tldp.pdf application note in PDF formatorg/HOWTO/Module-HOWTO/ link].
(1) The kernel branch must be <code>bora</code>.
 
(2) It is assumed that the development environment is already set up as described in BELK Quick Start Guide.
 
(3) The name of the binary file copied into the firmware directory must be <code>freertos</code>.
=== Additional resources ===
* http://www.wiki.xilinx.com/Multi-OS+Support+%28AMP+%26+Hypervisor%29
* http://www.xilinx.com/support/documentation/sw_manuals/petalinux2013_04/ug978-petalinux-zynq-amp.pdf
4,650
edits

Navigation menu