I am building an embedded device (like a phone) that will run FreeRTOS. I am using an ARM Processor. How can I make my homebrew device boot FreeRTOS? Is there a special type of storage drive that I can use to start freeRTOS?

  • \$\begingroup\$ Take a look on the FreeRTOS website. It has a zip with all the processors supported. \$\endgroup\$ – Gustavo Litovsky Mar 21 '13 at 4:18
  • \$\begingroup\$ Running FreeRTOS is no different from running any other program. Are you really asking how to load a program onto the processor? Can you program in C and use a compiler comfortably? \$\endgroup\$ – Joe Hass Mar 21 '13 at 10:55
  • \$\begingroup\$ @JoeHass I can program in C and use a compiler comfortably. I am just building an embedded device that runs FreeRTOS on an ARM processor. \$\endgroup\$ – Coder404 Mar 21 '13 at 12:04

FreeRTOS is statically linked. If you can compile, download and run a bare metal (no OS) application, then you can boot FreeRTOS because all you need to do is include the FreeRTOS source files in your build then call vTaskStartScheduler() from main().

Ok, maybe an over simplification, because you also need to install three interrupt handlers, but that is all.

There are lots of pre-configured examples available for lots of different ARM Cortex-M processors (like the one you link to) that come with buildable projects and instructions on downloading and running. Here are some links that might be useful:


Looking at the FreeRTOS ROM use it's quite frugal so the usual way would be to load it directly into the 512KB FLASH integrated into the microcontroller. The most convenient way to do that will be to provide JTAG programming pins on your design and load the image using a JTAG programmer.

While I haven't used NXP ARM parts in particular my approach would be to find a reference design or evaluation board circuit and copy the JTAG interface.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.