SLAU131V October 2004 – February 2020
.bss 0 00000200 00000270 UNINITIALIZED
00000200 0000011a rtsxxx.lib : defs.c.obj (.bss)
0000031a 00000088 : trgdrv.c.obj (.bss)
000003a2 00000078 : lowlev.c.obj (.bss)
0000041a 00000046 : exit.c.obj (.bss)
00000460 00000008 : memory.c.obj (.bss)
00000468 00000004 : _lock.c.obj (.bss)
0000046c 00000002 : fopen.c.obj (.bss)
0000046e 00000002 hello.c.obj (.bss)
.sysmem 0 00000470 00000120 UNINITIALIZED
00000470 00000004 rtsxxx .lib : memory.c.obj (.sysmem)
.stack 0 000008c0 00000140 UNINITIALIZED
000008c0 00000002 rtsxxx .lib : boot.c.obj (.stack)
As shown in Example 6 , the .bss and .sysmem sections are allocated at the lower addresses of RAM (0x0200 - 0x0590) and the .stack section is allocated at address 0x08c0, even though lower addresses are available.
Without using the HIGH specifier, the linker allocation would result in the code shown in Example 7
The HIGH specifier is ignored if it is used with specific address binding or automatic section splitting (>> operator).