RTOS and Memory Footprint

Complex embedded systems usually work through operating systems. The problem is that the operating system is an overhead. Since the embedded system has limited memory at its disposal, the embedded engineer has to carefully evaluate how much memory the real time operating system uses.

There are two kinds of memory in an embedded system- ROM memory or flash memory and RAM memory or read/write memory. The code and the constant data is stored in the ROM while the RAM is utilized for variables. However, flash memory is slow so usually the ROM code/data is copied to the RAM during boot up. This improves the embedded system’s performance drastically.

To determine the memory footprint of the RTOS system, you have to see what services the RTOS is using. RTOS services are scalable and this scalability changes from one embedded product to another. Depending on the type of embedded systems, a few of these services won’t be needed. In others, the entire service group is included/excluded. For example, if a certain RTOS object needs support, there is no option but to include all relevant services. Memory used for connectivity, networking and graphics is also considered when determining the RTOS footprint. Runtime library, stacks, compiler optimization are other factors. For these reasons, it is very difficult to determine the memory footprint of the RTOS on an embedded system.