This repository represent a fork branch of the main repository Forty-Tw0's FreeRTOS ported to raspberry pi 2B
https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS
At the first step, you need to clone the code located in RaspberryPi-FreeRTOS folder. These codes are almost as same as the primary repository codes. then follow the steps below to generate port output
- Step One, Generate kernel7.img
Follow this link from developer.arm.com to download the latest version of gcc-arm-none-eabi. Then open the project folder. Open MakeFile with any editor you like. At the end of the file, try to edit kernel.elf: LDFLAGS with suitable relative gcc-arm-none-eabi address:
Then open dbuild.config.mk and edit the relative address of 'Toolchain' at the end of the file:
now everything is ready to build the output port. So open a terminal in the main folder and type 'make'. Now you should get the output.
- Step Two, Raspberry Pi Porting
Now you have the FreeRTOS port for raspberry pi; it is just Kernel7.img. At this step, we will see how to install the file as mentioned above on Raspberry Pi and boot FreeRTOS. For this purpose, first, download Raspberry Pi OS from RaspberryPi.org. We recommend you download the lite version of Raspberry Pi OS. It would help if you had RaspberryPi Imager for booting Raspberry Pi OS. so follow this link and download a suitable version of Raspberry Pi Imager based on your operating system. Now you have all the necessary tools for booting your SD Card with Raspberry Pi OS. So Insert your SD Card and open Raspberry Pi Imager.
First, by clicking on Choose OS, select the img file of Raspberry Pi OS Lite. then selecet your SD card. Be aware your SD card will be formatted, so make sure you don't have important info on that. Then click on write and wait for the process to be completed.
Congratulations! Everything is ready to start your FreeRTOS, copy the Kernel7.img generated in step one and replace it with the one located in the boot drive of the SD Card. Power on your Raspberry Pi, and your main.c program will start!