Difference between revisions of "Running FreeRTOS on Xilinx Zybo"

Line 12: Line 12:
 
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.
 
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.
  
Download and extract FreeRTOS available at the FreeRTOS homepage: https://www.freertos.org/a00104.html
+
Download and extract FreeRTOS available at the FreeRTOS homepage:  
 +
#REDIRECT [[https://www.freertos.org/a00104.html]]<br />
 
Copy the following files from the downloaded Free into the SDK project source folder located at: \axi3_lite_tutorial_project\axi4_lite_tutorial_project.sdk\FreeRTOS_example_project\src\
 
Copy the following files from the downloaded Free 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\
+
\FreeRTOSV8.2.1\FreeRTOS\Demo\CORTEX_A9_Zynq_ZC702\RTOSDemo\src\<br />
FreeRTOS_asm_vectors.S
+
FreeRTOS_asm_vectors.S<br />
FreeRTOSConfig.h
+
FreeRTOSConfig.h<br />
FreeRTOS_tick_config.c
+
FreeRTOS_tick_config.c<br />
main.c
+
main.c<br />
printf-stdarg.c
+
printf-stdarg.c<br />
 +
<br />
  
 +
\FreeRTOSV8.2.1\FreeRTOS\Source\<br />
 +
croutine.c<br />
 +
event_groups.c<br />
 +
list.c<br />
 +
queue.c<br />
 +
tasks.c<br />
 +
timers.c<br /><br />
  
\FreeRTOSV8.2.1\FreeRTOS\Source\
 
croutine.c
 
event_groups.c
 
list.c
 
queue.c
 
tasks.c
 
timers.c
 
  
 +
\FreeRTOSV8.2.1\FreeRTOS\Source\include\<br />
 +
croutine.h<br />
 +
deprecated_definitions.h<br />
 +
event_groups.h<br />
 +
FreeRTOS.h<br />
 +
list.h<br />
 +
mpu_prototypes.h<br />
 +
mpu_wrappers.h<br />
 +
portable.h<br />
 +
projdefs.h<br />
 +
queue.h<br />
 +
semphr.h<br />
 +
StackMacros.h<br />
 +
task.h<br />
 +
timers.h<br /><br />
  
\FreeRTOSV8.2.1\FreeRTOS\Source\include\
+
\FreeRTOSV8.2.1\FreeRTOS\Source\portable\MemMang\<br />
croutine.h
+
heap_4.c<br /><br />
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\<br />
\FreeRTOSV8.2.1\FreeRTOS\Source\portable\GCC\ARM_CA9\
+
port.c<br />
port.c
+
portASM.S<br />
portASM.S
+
portmacro.h<br />
portmacro.h
+
<br />

Revision as of 16:03, 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.

Download and extract FreeRTOS available at the FreeRTOS homepage:

  1. REDIRECT [[1]]

Copy the following files from the downloaded Free 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