Starting freeRTOS from a bootloader
Posted by ARMinator
on 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?
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.