5.1.6.2 Attributes that Modify Section Types [DD]
Depending on the attribute, all or some section types may be modified by it, as below.
Attribute* | Description | Attribute applies to** |
---|---|---|
address(a) | locate at absolute address a | auxflash ,
bss , code , data ,
eedata , heap ,
memory , persist ,
psv , stack |
near | locate in the lowest range of memory | bss ,
data , persist |
xmemory | locate in X address space | bss ,
data , heap ,
persist |
ymemory | locate in Y address space | bss ,
data , heap ,
persist |
reverse(n) | align the ending address +1 | auxflash ,
bss , data ,
eedata , memory ,
persist , psv |
align(n) | align the starting address | auxflash ,
bss , code , data ,
eedata , heap ,
memory , persist ,
psv , stack |
noload | allocate, do not load | auxflash ,
bss , code , data ,
eedata , memory ,
persist , psv |
merge(n) | mergeable elements of size n*** | auxflash ,
code , data ,
eedata , psv |
info | do not allocate or load | auxflash ,
bss , code ,
data |
dma | locate in DMA space | bss ,
data , persist |
boot | locate in boot segment | bss ,
code , eedata ,
psv |
secure | locate in secure segment | bss ,
code , eedata ,
psv |
eds | locate in extended data space | bss ,
data , persist |
shared | use section outside of application | auxflash ,
bss , code , data ,
eedata , memory ,
psv , stack |
preserved | preserve variables on restart | bss ,
data , memory ,
persist |
update | initialize variables on restart | bss ,
data , memory ,
persist |
priority(n) | group variable initializations together | auxflash ,
bss , code ,
data |
page | do not cross page boundary | auxflash ,
bss , code , data ,
persist , psv |
* = Not all devices support
all attributes. For dsPIC33A devices if an attribute is not supported,
it will be ignored. ** = See Attributes that Represent Section Types [DD] for descriptions and device support. *** = This attribute could be used by a linker to merge identical constants across input files. If n=0, the section contains null-terminated strings of variable length. |
Attributes that modify section types may be used in combination. For
example, xmemory,address(a)
is a valid attribute string, but
xmemory,address(a),ymemory
is not.
Attribute* | Attribute can be combined with* |
---|---|
address | near ,
xmemory , ymemory ,
noload , dma ,
boot , secure , eds ,
page |
near | address ,
xmemory , ymemory ,
reverse , align ,
noload , merge |
xmemory | address ,
near , reverse ,
align , noload ,
merge , eds ,
page |
ymemory | address ,
near , reverse ,
align , noload ,
merge , eds ,
page |
reverse | near ,
xmemory , ymemory ,
noload , merge ,
dma , boot ,
secure , eds ,
page |
align | near ,
xmemory , ymemory ,
noload , merge ,
dma , boot ,
secure , eds ,
page |
noload | address ,
near , xmemory ,
ymemory , reverse ,
align , dma , boot ,
secure , eds ,
page |
merge | near ,
xmemory , ymemory ,
reverse , align ,
eds , page |
info | N/A |
dma | address ,
reverse , align ,
noload , eds ,
page |
boot | address ,
reverse , align ,
noload , eds ,
page |
secure | address ,
reverse , align ,
noload , eds ,
page |
eds | address ,
xmemory , ymemory ,
reverse , align ,
noload , merge ,
dma , boot ,
secure , page |
shared | address ,
near , xmemory ,
ymemory , reverse ,
align , noload ,
merge , dma , boot ,
secure , eds ,
preserved , update ,
priority , page |
preserved | address ,
near , xmemory ,
ymemory , reverse ,
align , noload ,
merge , dma , eds ,
shared , priority ,
page |
update | address ,
near , xmemory ,
ymemory , reverse ,
align , noload ,
merge , dma , eds ,
shared , priority ,
page |
priority(n) | address ,
near , xmemory ,
ymemory , reverse ,
align , dma , boot ,
secure , eds ,
shared , preserved ,
update , page |
page | address ,
xmemory , ymemory ,
reverse , align ,
noload , merge ,
dma , boot ,
secure , eds |
* = Not all devices support all attributes. For dsPIC33A devices if an attribute is not supported, it will be ignored. |