1.U-Boot是什么?有什么用?
2.Linux设备的启动流程?
3.uboot移植是什么?
4.uboot怎么用?
5.编译完uboot之后用过什么工具烧写镜像?
6.如何进入uboot命令行?
在启动的倒计时时输入enter可进入命令行模式(是run_cli_loop函数)
6.常用的uboot命令?
大致分为十类
8.uboot配置.config文件是怎么生成的?
通过 make xxxdefconfig 生成.config文件。
9.uboot、Linux内核如何控制某项功能是否使能?
.config 中 控制xxx=y 表示使能。makefile 在展开和使用中会判断。
10.uboot的启动流程简要描述
从链接脚本uboot.lds 决定跳转到_start的位置(中断向量表),然后跳转到reset
reset->save-boot-prams->save-boot-prams-ret
cpu_init_cp15 | cpu_init_crit(lower init) ->_main
11.uboot中__main函数干了什么
关键的四个函数:board_init_f , relocate_code, relocate_vectors, board_init_r
-
board_init_f:初始化一系列外设(串口、定时器等);初始化 gd的各个成员变量 同时uboot自己将自己重定位到Dram最后面的地址,防止Linux kernel 覆盖掉uboot.
-
relocate_code: 用于代码拷贝
-
relocate_vectors: 用于重定位向量表
-
board_init_r : 完成一些board_init_f未完成的初始化,其中有很多与我们之前学习单片机的内容接近。
在 board_init_r中有设备树的初始化(解析)、stdio、串口、看门狗的初始化,还有一个关键的board_init(时钟电压等等初始化)
12.通过uboot的启动流程我们可以知道什么?
- 关键外设驱动在哪里被初始化
- Linux内核怎么被启动
13.uboot启动后会进入什么函数,从哪里进入Linux内核
进入run_main_loop 如果 在倒计时结束前按下按键就能进入 cli_loop(uboot的命令行模式)
最后调用kernel_entry 进入 Linux内核 然后uboot的使命就结束了。
14.uboot相关的图形化配置
menuconfig/Kconfig
menuconfig
本文来自博客园,作者:快乐过了阈值,转载请注明原文链接:https://www.cnblogs.com/black-worrior-2000/p/16616016.html
墨愁前路无知己,天下谁人不识君。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通