The following is the CCS 5.5.0.00077 Memory Allocation view for a project:
All of the FLASH allocation is shown correctly. However, for the RAM allocation:
- The total RAM allocation reported is 1806 bytes, which matches the usage reported in the linker map file.
- Adding up the RAM sections shown in the Memory Allocation only comes to 1716 bytes. i.e. 90 bytes is not acounted for in the allocation.
The RAM allocation is missing the view of a UNION section which was used to load some functions in RAM.
The UNION was allocated in the linker command file with:
Which was reported in the linker map file as:UNION run = RAM
{
ram_funcs_a : LOAD=FLASH, table(load_funcs_a_table)
ram_funcs_b : LOAD=FLASH, table(load_funcs_b_table)
}
ram_funcs_b
* 0 00004572 0000005a RUN ADDR = 00002976
00004572 0000004c main.obj (ram_funcs_b:ram_test_b)
000045be 0000000e main.obj (ram_funcs_b:ram_test_b_inner)ram_funcs_a
* 0 000045cc 00000034 RUN ADDR = 00002976
000045cc 00000034 main.obj (ram_funcs_a:ram_test_a)
The complete project is attached for reference 1882.MSP430_ram_funcs_swap.zip