Running FreeRTOS on Xilinx Zybo: Difference between revisions
No edit summary |
No edit summary |
||
Line 74: | Line 74: | ||
Next we should configure the CPU to run at 50MHz in the FreeRTOSConfig.h file by editing the configCPU_CLOCK_HZ parameter: | Next we should configure the CPU to run at 50MHz in the FreeRTOSConfig.h file by editing the configCPU_CLOCK_HZ parameter: | ||
[[File:FreeRTOSConfig_cpu_freq_edit.png|400px | [[File:FreeRTOSConfig_cpu_freq_edit.png|400px|center]] |
Revision as of 15:53, 6 December 2017
Tested on Xilinx Vivado/SDK 2017.3, Ubuntu 16.04 LTS. This tutorial assumes you have completed the "Creating example project with AXI4 Lite peripheral in Xilinx Vivado"-tutorial.
Running FreeRTOS on Xilinx Zybo
This tutorial will help in setting up Xilinx Zybo SoC-board to run FreeRTOS with an example project that toggles the LEDs on the board. It assumes that the user has successfully exported the hardware bitstream from the Xilinx Vivado project created in the previous tutorial linked at the top.
Setup SDK
Launch Xilinx SDK from the project in Xilinx Vivado: File --> Launch SDK.
Create a new application project with File --> New --> Application Project and name it "FreeRTOS_example_project". Use C as language, standalone as OS. Click next, select "Empty Application", and finish.
Acquire FreeRTOS
Download and extract FreeRTOS available at the FreeRTOS homepage:
- Homepage [[1]]
Add FreeRTOS to the project
Open the extracted folder, and copy the following files into the SDK project source folder located at: \axi3_lite_tutorial_project\axi4_lite_tutorial_project.sdk\FreeRTOS_example_project\src\
\FreeRTOSV8.2.1\FreeRTOS\Demo\CORTEX_A9_Zynq_ZC702\RTOSDemo\src\
FreeRTOS_asm_vectors.S
FreeRTOSConfig.h
FreeRTOS_tick_config.c
main.c
printf-stdarg.c
\FreeRTOSV8.2.1\FreeRTOS\Source\
croutine.c
event_groups.c
list.c
queue.c
tasks.c
timers.c
\FreeRTOSV8.2.1\FreeRTOS\Source\include\
croutine.h
deprecated_definitions.h
event_groups.h
FreeRTOS.h
list.h
mpu_prototypes.h
mpu_wrappers.h
portable.h
projdefs.h
queue.h
semphr.h
StackMacros.h
task.h
timers.h
\FreeRTOSV8.2.1\FreeRTOS\Source\portable\MemMang\
heap_4.c
\FreeRTOSV8.2.1\FreeRTOS\Source\portable\GCC\ARM_CA9\
port.c
portASM.S
portmacro.h
Your SDK project source folder should now look like this:
Edit the highlighted line to the lscript.id file located in the SDK project source folder:
Comment out "*pxTopOfStack |= portTHUMB_MODE_BIT;" on line 280 in port.c to avoid FreeRTOS to run in thumb-mode:
Setting CPU frequency
Next we should configure the CPU to run at 50MHz in the FreeRTOSConfig.h file by editing the configCPU_CLOCK_HZ parameter: