了解嵌入式软件中的链接描述文件 NOLOAD 部分
Understanding linker script NOLOAD sections in embedded software
根据 ld
的 GNU 文档,NOLOAD
部分的工作方式如下:
The `(NOLOAD)' directive will mark a section to not be loaded at run
time. The linker will process the section normally, but will mark it
so that a program loader will not load it into memory.
现在,关于 程序加载器,根据维基百科:
Embedded systems typically do not have loaders, and instead, the code
executes directly from ROM. In order to load the operating system
itself, as part of booting, a specialized boot loader is used.
那么,NOLOAD
部分对 FW/嵌入式软件到底有什么作用?
NOLOAD
部分定义了 link 程序正常需要但不能加载到内存中的部分。例如,您可能需要 link 您的程序带有一些位于 ROM 中的代码,因此您告诉 link 人员将 ROM 中的代码标记为 NOLOAD
。然后将加载程序的工具(调试器、OS 或其他)将不会加载这部分代码。
根据 ld
的 GNU 文档,NOLOAD
部分的工作方式如下:
The `(NOLOAD)' directive will mark a section to not be loaded at run time. The linker will process the section normally, but will mark it so that a program loader will not load it into memory.
现在,关于 程序加载器,根据维基百科:
Embedded systems typically do not have loaders, and instead, the code executes directly from ROM. In order to load the operating system itself, as part of booting, a specialized boot loader is used.
那么,NOLOAD
部分对 FW/嵌入式软件到底有什么作用?
NOLOAD
部分定义了 link 程序正常需要但不能加载到内存中的部分。例如,您可能需要 link 您的程序带有一些位于 ROM 中的代码,因此您告诉 link 人员将 ROM 中的代码标记为 NOLOAD
。然后将加载程序的工具(调试器、OS 或其他)将不会加载这部分代码。