I have an MSP430F2618 project in IAR that I am trying to port to CCS for evaluation, but can't get the linker to fit it into RAM.
The IAR RAM memory map is very tight -- in fact I think it is all used !!
- 0x1100 - 0x129D (0x19E) is allocated for some absolute objects (2 volatile vars, and 1 volatile structure)
- 0x129E - 0x12D3 (0x36) is allocated for DATA16_I (initialized data)
- 0x12D4 - 0x1401 (0x12E) is allocated for DATA16_Z (zero initialized data)
- 0x1402 - 0x2E69 (0x1A68) is allocated for DATA16_HEAP
- 0x2E6C - 0x30FF (0x294) is allocated for CSTACK
The .bss section of the CCS linker map is ... (actually, I hacked the RAM so it was all available to get it to fit and generate the .bss symbols)
.bss 0 00001100 000002a8 UNINITIALIZED
00001100 0000012e API_CRC.obj (.bss)
0000122e 000000b0 rts430x.lib : signal.obj (.bss)
000012de 00000078 : xvalues.obj (.bss)
00001356 0000002c API_RRobin.obj (.bss)
00001382 00000008 rts430x.lib : _lock.obj (.bss)
0000138a 00000008 : boot.obj (.bss)
00001392 00000008 : feraiseexcept.obj (.bss)
0000139a 00000008 : memory.obj (.bss)
000013a2 00000004 : vars.obj (.bss)
000013a6 00000002 : errno.obj (.bss)
I don't know why the API_CRC.obj file has 0x12E of bss, as this file has NO static or global variables. I think this is an anomaly of the linker output. The file API_RRobin.obj looks correct. I'm wondering if it is the rts430x.lib which is taking up too much space. Is there a way to get this to a minimal size ??
Any clues as to why the CCS .bss section is so much larger than the IAR .bss section ??
Thanks, Brendan.