Requirements RTOS

myzinsky wrote on Friday, February 11, 2011:

What are the Requirements on a CPU to run Free RTOS?

davedoors wrote on Friday, February 11, 2011:

Your question is way way too vague to be able to answer.

myzinsky wrote on Monday, February 14, 2011:

okay, i’m currently designing a processor, what do i need?

* ram size ?
* timer ?
* stack ?

what are the basic requirements for free rtos?

richard_damon wrote on Monday, February 14, 2011:

The most basic answer is you need to be able to provide the equivalent code to what is provided in port.c and portmacro.h in other ports.

A basic list of what this entails is:
1) A timer, with code to set it up, normally on a low/lowest interrupt priority. Strictly speaking, FreeRTOS can somewhat run without a timer, you just lose the ability for a task to delay for a period, abort a wait after a timeout, and automatically round robin tasks of equal priority. Even if you don’t have a precise timer interrupt, you can often do “good enough” with any form of interrupt that happens at a reasonable, if not consistent, rate (it just says the accuracy of time periods isn’t very good).

2) You need to provide a way to save the state of a task, and to restore that state either in a interrupt or not (or have a way for the software to generate an interrupt used to save the task state). Note also, that “Task State” includes the tasks stack, so a processor with the stack at a fixed location may not work well.

3) It needs enough memory to run. FreeRTOS itself doesn’t use much memory, The biggest use of ram are the tasks themselves, each needing there own stack and other ram. Unless your tasks are very simple, the overhead for FreeRTOS is probably minor compared to the tasks themselves. I would try to make it work on a machine with only 256 bytes of ram, 4k is workable if you don’t need much ram in the tasks for buffers, and not a large number of tasks.

myzinsky wrote on Monday, February 14, 2011:

thank you for this detailed answer!

regards myzinsky