【发布时间】:2023-12-26 06:04:02
【问题描述】:
在链接描述文件中使用“attr”的目的是什么。我看到允许的字段是“ALIRWX”。链接器手册 [1]:ftp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html#SEC16 没有解释如果未提及会发生什么。举例来说,如果我不将该部分标记为“X”并将其留空,会发生什么。同样适用于“只读”部分。
【问题讨论】:
标签: gcc ld linker-scripts
在链接描述文件中使用“attr”的目的是什么。我看到允许的字段是“ALIRWX”。链接器手册 [1]:ftp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html#SEC16 没有解释如果未提及会发生什么。举例来说,如果我不将该部分标记为“X”并将其留空,会发生什么。同样适用于“只读”部分。
【问题讨论】:
标签: gcc ld linker-scripts
内存属性并不是为了强制任何东西,而是为了让ld 了解您的目标环境。你告诉它哪个内存区域可用于什么目的,以帮助它决定事情必须去哪里。
例如如果您的硬件可以抑制特定内存区域的程序执行(或通过设计来抑制它,就像在真正的哈佛架构中一样),您将省略“X”来告诉 ld 它不能期望从那里执行代码。
如果您在SECTIONS 分配中省略(可选)>region 语句,ld 将根据您的定义分配最合适的内存区域。
【讨论】: