c - 了解 GHS 链接器文件

标签 c embedded

任何人都可以教我如何理解链接器文件。它将有不同的 ROM 和 RAM 部分。 我的问题是我们将在什么基础上决定内存部分、其地址和大小。 .map 将如何生成。

最佳答案

链接器指令文件是构建链接阶段的输入。链接器指令文件指定链接器可用的存储器的类型、位置和大小,以便链接器可以确定在哪里定位程序的各种代码和数据部分。您放入链接器指令文件中的信息基于您的硬件和应用程序的设计。例如,您的微 Controller 可能具有内部 SRAM 和闪存,而您的电路板可能具有与特定芯片选择相关的外部 SRAM 和闪存。链接器指令文件是让链接器了解这些内存的位置和大小的方式。此外,对于您的应用程序,您可能希望特定代码或数据位于特定地址的命名内存部分中。例如,您希望启动例程位于复位 vector 处。链接器指令文件是您指定这些特殊节的名称、位置和大小的方式。 (源代码中的 pragma 语句可用于将例程放置在命名部分中。)

映射文件是构建链接阶段的输出。链接器将所有代码和数据部分定位到可用内存后,它会生成映射文件来详细说明所有这些位置。

通常,工具链或评估板供应商将为常见评估板提供示例链接器指令文件。即使您使用自定义板,您通常也可以调整为类似评估板提供的链接器指令文件,而不是从头开始编写链接器指令文件。

关于c - 了解 GHS 链接器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369898/

相关文章:

c - valgrind 显示的堆外程序内存消耗

c++ - 多线程服务器中的EnterCriticalSection和大量共享数据

java - Java 嵌入式运行时环境上的 com.sun.net.httpserver.HttpHandler ClassNotFound 异常

c - 为什么这个 led 序列循环不循环?

opencv - 应该采取哪些步骤来确保在 PC 上运行的 OpenCV 代码将在特定的嵌入式设备上运行?

iphone - c中的函数名称范围

c - 为什么在 for 循环中包含 for 循环

c - openssl命令行解密aes ctr 128

c - mc56f8367头文件的要求

c++ - 如何修复在 Linux 内核 SPI 驱动程序中始终无法通过验证的 SPI 驱动程序