Starting freeRTOS from a bootloader

jstoezel wrote on Monday, May 17, 2010:


My ARM7 board comes with a USB bootloader preloaded in flash. I am able to compile and run applications that are I can burn and invok in/to flash by the bootloader.

My application runs freeRTOS, so I would like freeRTOS to start booting once called by the bootloader. I have modified a demo loader file so the freeRTOS boot.s and the user application are relocated where the bootloader is expecting to load/find the user application. I use the GCC toolchain.

I can see the bootloader invoking the user application, since I can run the blinky tests from the main function. If I let the main function call vTaskStartScheduler then my board will not run any of the freeRTOS task (and will hang).

I added code to blink whenever a tick is announced, but it does not look like I am getting any interrupts. I am thinking the interrupt vectors are not configured properly…

Here are the only modification I made so far from the original demo folder:
- in ld file, changed “flash (rx) : ORIGIN = 0, LENGTH = 380K” to “flash (rx) : ORIGIN = 0x10000, LENGTH = 380K”

Anything else I should have done to configure the interrupts? Or is it a totally different issue I am seeing here?