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的定位问题进行修复,就是为了解决该问题。
六、启动过程总结
热门推荐
转化医学成医疗健康创新方向,成都武侯如何赋能?
转化医学成医疗健康创新方向,成都武侯如何赋能?
餐饮行业供应链怎么降低成本?
如何实现细胞外囊泡规模化生产?
有人直接挑明,AI在假装思考…
香砂平胃颗粒饭前吃还是饭后吃
计算机拆装机流程详解
平行高压反应釜的日常维护与保养
脸的骨架大怎么瘦脸最有效
管理学思维导图:一图看懂,轻松掌握
Kep1er沈小婷遭遇最离谱泄露!身份证号被公司公然公开?
芦荟的象征意义及其神奇之处
心脏彩超检查的目的与意义
2025年最新:父母使用子女医保卡的全面指南
皮肤如何变白皙
从本土到全球:中国家居企业的全球化战略探索
肺炎十三价疫苗接种时间表
由街头跳进奥运大舞台!你认识霹雳舞吗?
【植物界全系列】姜目—竹芋科
三国演义中的十位虚构人物
2025年正规牙科医院牙齿美白收费情况及适用人群全解析
即有法院起诉警告函:法律风险与防范策略探析
年轻人不婚背后的经济原因
行政职业能力测验考题有哪些常见类型?
2025甘肃高考难吗排名全国第几 甘肃历年高考难度趋势
莫言的故乡,高密旅游6大必打卡景点
电动螺旋压力机的使用寿命是多久 电动螺旋压力机的维护保养方法
川菜大厨:做酸菜鱼时,只要牢记“这2点”,味道比饭店的还要好
吸音材料:定义、原理、分类与应用全解析
易烊千玺拿下跨年档,为何TF boys三人差距越来越大?