代码和数据重新定位
概述
此功能将允许从所需的文件中重新定位.text、.rodata、.data和.bss部分,并将它们放在所需的内存区域中。内存区域和文件以字符串的形式提供给scripts/gen_relocate_app.py
脚本。这个脚本总是从cmake内部调用。
这个脚本提供了一种健壮的方法来重新排序内存内容,而不需要实际修改代码。简单地说,这个脚本将为一堆文件一起执行 __attribute__((section("name")))
的工作。
详细信息
内存区域和文件以字符串的形式提供给scripts/gen_relocate_app.py
脚本。
这样一个字符串的一个例子是:SRAM2:/home/xyz/zephyr/samples/hello_world/src/main.c
,SRAM1:/home/xyz/zephyr/samples/hello_world/src/main2.c
这个脚本用以下参数调用:in gen_relocate_app.py
生成代码
当在prj.conf
中启用Kconfig CONFIG_CODE_DATA_RELOCATION
选项时,它将调用该脚本并执行所需的重定位。
这个脚本还会触发对linker_relocate.ld
和code_reg