[国嵌笔记][018][链接器脚本]
链接器脚本
一个可执行程序通常由:代码段、数据段、bss段构成。在用于链接这个程序的链接器脚本中,反应的是这几个段的信息。
创建链接器脚本
1.创建链接器脚本
vim led.lds
2.设置起始链接地址
. = 0x30008000
3.对其设置
. = ALIGN(4);
arm处理器在访问数据的时候是以4字节对齐的方式访问的,所以在存储数据时以4字节对齐可以提高访问效率
4.使用变量
start_adr = .;
使用变量保存下来的地址可以在程序中使用
5.设置代码段的首文件
led.o(.text)
通过设置首文件,保证一个文件在程序开始时被执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SECTIONS{ . = 0x30008000; //"."表示当前地址,代码段之前的地址是起始地址,表示把起始地址设置成0x30008000 . = ALIGN(4); //"."表示当前地址,ALIGN(4)表示以4字节对齐,如果当前地址不能被4整除,则下一个地址加上一个偏移使之能被4整除 .text : //代码段 { main.o(.text) //表示main.o在其他文件之前 *(.text) //“*”表示所有文件,".text"表示代码段 } . = ALIGN(4); .data : //数据段 { *(.data) //“*”表示所有文件,".data”表示数据段 } . = ALIGN(4); bss_start = .; //设置变量bss_start等于当前地址 .bss : //bss段 { *(.bss) //“*”表示所有文件,".bss"表示bss段 } bss_end = .; //设置变量bss_end等于当前地址 } |
分类:
嵌入式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术