Lets start with overview of FreeRTOS Development and then we will go for step-by-step tutorial on "creating multi-tasking application" on FreeRTOS.
In this reference tutorial, we are providing the "Tcl" file for creating the VIVADO 2019.2 Project, we also have attached the "XSA" which is generated file and we also have included the "VIVADO Block Diagram" in PDF format.Multi Tasking on FreeRTOS: Overview
Multitasking is perfromed on FreeRTOS by creating Tasks or Multiple Tasks. Tasks in FreeRTOS are individual programs which has capability to run independently and synchronously with other tasks. In General, each task is a program of its own with infinite while loop.
Tutorial Step 1: Creating the VIVADO ProjectYou can start with VIVADO 2019.2, create new project, select the Ultra96v1 board [if you have not have added board file of Ultra96 v1 then add it first], and finish the option. After the VIVADO project created,
Now download the Tcl Source for creating the Project: Tcl File,
you can run "source VIVADO_2019_2_Project.tcl" on the Tcl Console of VIVADO 2019.2. This Tcl file will create the necessary VIVADO block diagram of Zynq MPSoC Processing System for Ultra96v1 board.
The Block design of Zynq UltraScale+ MPSoC looks like, Download Block Diagram in PDF
Tutorial Step 2: Creating the Vitis ProjectFor creating the Vitis Project, you need to have XSA from "Tutorial Step 1: Creating the VIVADO Project" or you can use the XSA which we have attached in this Repo: Downlaod XSA for Ultra96v1 VIVADO 2019.2
Main Application of FreeRTOS multi-tasking implementation is linked here: "multi-tasks-freertos.c"-Source file
The Vitis 2019.2 Project flow [Tutorial Step 2 only] is explained on this video:
Tutorial Step 3: Testing on Ultra96v1 FPGA BoardHere is the example output captured on "Foxterm" while implementing the "Multi-tasking FreeRTOS Application" on Ultra96 v1 FPGA.
Download the BOOT file for Ultra96v1
Project Github: LogicTronix/FreeRTOS-Development
Comments