U-boot的整体结构和linux基本类似,编译方式一般也是非常类似的,一般的编译命令:
make CROSS_COMPILE=arm-linux-gnueabihf- XXX(目标名)
清除命令:
make CROSS_COMPILE=arm-linux-gnueabihf- distclean
其实,他的目录结构也和linux'的内核比较类似,这里就对他的内核结构做个大致的介绍:
* board 目标板相关文件,主要包含各种驱动的初始化和配置,比如,SPI,USB,单板信息等
* common 独立于处理器体系结构的通用代码,主要是很多通用的接口封装,如USB,GPIO,文件系统等;
* examples可在U-Boot下运行的示例程序;如hello_world.c, timer.c,test_burst.c等
* driver 通用设备驱动,常用的通信接口驱动都有,如ddr,i2c,pci,net等
* include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;
* SPL 与网络功能相关的文件目录,如bootp,nfs,tftp;
SPL是Secondary Program Loader的简称,第二阶段程序加载器,这里所谓的第二阶段是相对于SOC中的
BROM来说的,之前的文章已经有所介绍,SOC启动最先执行的是BROM中的固化程序。
BROM会通过检测启动方式来加载第二阶段bootloader。uboot已经是一个bootloader了,那么为什么还多一个uboot spl呢?
这个主要原因是对于一些SOC来说,它的内部SRAM可能会比较小,小到无法装载下一个完整的uboot镜像,那么就需要spl,
它主要负责初始化外部RAM和环境,并加载真正的uboot镜像到外部RAM中来执行。所以由此来看,SPL应该是一个非常小
的loader程序,可以运行于SOC的内部SRAM中,它的主要功能就是加载真正的uboot并运行之。
总体来说,u-boot的结构和linux内核还是很像的,以后在实际使用的过程中再继续分析一下代码和流程。
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战