aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-rt/check-blobs.sh
diff options
context:
space:
mode:
authorGravatar Robert Jördens <rj@quartiq.de> 2021-04-07 17:35:37 +0200
committerGravatar Robert Jördens <rj@quartiq.de> 2021-04-07 17:47:23 +0200
commitbf99836c09e6e5cab058fed4ffe38b9c3f8282b0 (patch)
treec2ae11b54b97c545455745ec5c9b781b7a7d3c11 /cortex-m-rt/check-blobs.sh
parentbbdab5a92b97bd77aa288b489695ad63a364f905 (diff)
downloadcortex-m-bf99836c09e6e5cab058fed4ffe38b9c3f8282b0.tar.gz
cortex-m-bf99836c09e6e5cab058fed4ffe38b9c3f8282b0.tar.zst
cortex-m-bf99836c09e6e5cab058fed4ffe38b9c3f8282b0.zip
link.x.in: put most __[se] symbols back into sections
This puts most start/end address symbols back into the sections. Only `__ebss` and `__edata` are kept outside their sections so that potential user code with external libraries can inject stuff using `INSERT AFTER .bss/.data` and profit from the .bss/.data zeroing/loading mechanism. This also leads to the `__sbss` and `__veneer_base` symbols having the right section type (B not D in nm). Also the trust zone start and end address are aligned to 32 bytes as per the requirements. That section does cost up to 28 byte of FLASH due to that alignment even if empty. The .rodata start is kep free for the linker to alocate it after .text. This enables users to inject sections between .text and .rodata and removes the chance to get overlapping address errors. With this the linker will by default place .rodata after .text as before. This commit also adds and exposes a few more stable address start/end symbols (__[se]uninit, __stext, __srodata) that are usefull for debugging and hooking into. See https://github.com/rust-embedded/cortex-m-rt/pull/287#issuecomment-810017930 for discussion of the issues and description of this compromise solution.
Diffstat (limited to 'cortex-m-rt/check-blobs.sh')
0 files changed, 0 insertions, 0 deletions