Hi, I’m trying to make a port using GCC for the Redwire Econotag board (mc13224v, ARM7) but i’m a newbie.
I am following the “Creating a New FreeRTOS Port”, stuck at the “Implementing the Stubs” part.
It sais this is the difficult bit, but doesn’t explain much.
I’m not sure what should i do from this point and i can’t find any similar port online, any help?
This is an ARM7 device, so for the most part you can copy one of the other ARM7 GCC ports to obtain the context saving and restoring code. For example, see FreeRTOS-Kernel/portable/GCC/ARM7_LPC2000 at main · FreeRTOS/FreeRTOS-Kernel · GitHub. However, ARM7, unlike Cortex-M, does not have a timer or interrupt controller built into the core, so you will need to update the function that configures a timer to generate the tick interrupt, and any housekeeping necessary to service the interrupt controller.
I suggest starting with a simple program that does nothing but generate a periodic interrupt to make sure you can generate a interrupt at the required frequency - then you can integrate that code into your FreeRTOS port once the timer is working.
Also note the ARM7 core needs to be in Supervisor mode to start the scheduler. You can achieve that by modifying the C-Startup code to ensure main() is called in Supervisor mode.
Thank you so much,
I’m trying to create the periodic interrupt part right now.