u-boot启动流程详解:从XIP设备到重定位
创作时间:
作者:
@小白创作中心
u-boot启动流程详解:从XIP设备到重定位
引用
CSDN
1.
https://blog.csdn.net/u011456016/article/details/139666459
本文详细介绍了u-boot的启动流程,包括XIP设备、BootROM的作用、SPL(Secondary Program Loader)、重定位等关键概念,并通过具体的启动流程图进行了说明。
一、XIP设备
XIP设备是指一种可以直接在存储器中执行程序代码的设备,而不需要将代码复制到内存中。XIP的全称是eXecute In Place,即芯片内执行。这类设备包括片内的SRAM、NOR Flash、BootROM等。
XIP设备的启动方式是系统上电之后CPU执行的第一条指令是直接在非易失性存储器中执行的,比如被存储在flash中的启动程序,便可以直接在flash中执行,而不需要拷贝到内存中运行。这种启动方式的特点是节省了从存储器到内存的复制过程,从而减少了启动时间和资源消耗。
二、BootROM的作用
支持多种启动方式(如SD卡、EMMC、USB、UART启动)的芯片,内部必定有BootROM。BootROM的主要作用是硬件初始化,并将程序从非XIP设备复制进RAM,然后从RAM中执行。
支持多种启动方式的方法有两种:
- 芯片有boot pin,决定使用哪个外设。bootrom根据引脚决定读取哪个设备的程序
- 芯片有boot pin,决定多种外设的尝试顺序
三、完整的u-boot复制进内存
由于片内RAM容量有限(只有几KB),而用户程序可能有几百KB或几MB,因此需要采用以下方法:
- BootROM从启动设备读取用户程序的前几KB到SRAM,运行它;这前几KB的代码负责:初始化DDR、把完整的程序从启动设备复制到DDR、并跳到DDR运行。
- BootROM从启动设备读取SPL到SRAM,运行它;SPL负责:初始化DDR、把用户程序从启动设备复制到DDR、并跳到DDR运行。
四、SPL
SPL全称叫做Secondary Program Loader,实质上是一个二级加载程序。由于SRAM容量有限(通常只有几KB),而u-boot编译后可能有几百KB,因此需要采用以下方法:
- 放不下就放不下呗,BootROM加载多少算多少;
- 做一个小一点的boot程序,先让BootROM加载这个小的程序,后面再由这个小boot去加载u-boot。
五、重定位
重定位就是uboot将自身拷贝到DRAM的另一个地方去继续运行(DRAM的高地址处)。链接地址和运行地址的关系:正常情况下链接地址 = 运行地址,当运行地址等于链接地址时,程序肯定能运行。
位置无关码:从本质上讲,位置无关码就是代码中跳转或者取值、赋值的目标地址都使用相对地址,位置有关码使用的是绝对地址。
重定位的两种方法:
- 链接地址是Addr_A,拷贝到Addr_A去运行,此时链接地址和运行地址相等,程序可以正常运行。
- 链接地址是Addr_A,拷贝到Addr_B去运行,运行地址和链接地址就不一样了,这样在进行寻址就会出问题,解决办法就是使用位置无关码,对.rel.dyn的定位问题进行修复,就是为了解决该问题。
六、启动过程总结
热门推荐
一句简单问候,激活团队正能量
北京到大连自驾攻略:800公里京哈高速全程指南
MBTI性格测试助你找到合适职业:从ISTJ到ENTJ
海南三亚海棠湾周边必游景点推荐
手机恢复出厂设置指南:从数据备份到系统还原
揭秘手机恢复出厂设置:隐私保护的有效手段但非万无一失
多点突破 核医疗临床应用迎来新进展
肠道健康很关键:饮食与益生菌的重要性
担心感染幽门螺杆菌?做个C14呼气试验
诸葛武侯祠:三国文化的圣地
心脏彩超:六大功能解析,这些情况需要做
梅花鹿马鹿野外生存对比:体型力量与敏捷性的较量
宋朝继承制度大变革:女性获继承权,遗嘱需官印
老年人订立遗嘱必读:五种形式要求与三大注意事项
车前子:中医里的全能选手
车前子:养生保健的新选择
周玉龙:名字里的文化密码
洗澡有讲究:频率因人而异,这三种情况不宜洗
高血压患者冬季洗澡三大禁忌,这些行为也要当心
揭秘《红楼梦》中的贾母:她其实是万历皇帝的化身
香芋保鲜秘籍,你get了吗?
亚里士多德和托马斯·阿奎那眼中的AI意识
图灵测试:AI智能的试金石
AI助力“毅力号”和“嫦娥六号”探测新突破
决明子和蒲公英,谁才是养生神器?
社保基金二季度持仓图谱:增持144股,券商、化工最受青睐
社保基金年报揭秘:金融股为重仓首选,12年坚守48只个股
我国中医药标准化建设取得进展,但仍存五大难题
23点后身体开始“罢工”:熬夜危害与缓解方法
孕妇吃泡面,这样搭配才健康!