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. | |
