Prev: 8. Using the Built-in Real-Time Kernels
Next: 10. Comparison to the Traditional Approach
To give you an idea of the QP-nano memory usage, Table 10-1 and 10-2 show the memory footprint of the QP-nano components for various settings of the configuration macros. The data for Table 10-1 has been obtained from the IAR compiler for MSP430 v4.10A (the KickStart edition), while data for Table 10-2 has been obtained from the IAR compiler for ARM Cortex-M3 v5.11 (also the KickStart edition). In both cases I have selected optimization level High/Size. The first column of Table 10-1 and 10-2 lists the configuration macros that are significant for the RAM or ROM usage in QP-nano. I have omitted the QF_ISR_NEST and QF_ISR_KEY_TYPE macros, as they have virtually no impact on the code or data sizes shown in the tables (even though, defining QF_ISR_KEY_TYPE increases somewhat the stack usage.) Both MSP430 and Cortex-M3 offer good code density and the IAR compiler generates fantastic machine code for these CPU architectures. (I've seen much worse results for older CPU architectures, such as 8051 or the PIC). Therefore, you should treat the data in Table 10-1 and 10-2 as minimum memory footprint of QP-nano rather than average results. The intent of Table 10-1 is primarily to give you a general idea for the relative cost of various options, rather than to provide you absolutely accurate measurements.
Table 10-1 QP-nano memory usage in bytes for various settings of the configuration parameters (MSP430/IAR compiler/optimization-High/Size)
Table 10-2 QP-nano memory usage in bytes for various settings of the configuration parameters (ARM Cortex-M3/IAR compiler/optimization-High/Size)
Prev: 8. Using the Built-in Real-Time Kernels
Next: 10. Comparison to the Traditional Approach
1.5.4