
U-Boot
文章平均质量分 65
U-Boot学习内容记录
怦然心动如往昔
嵌入式方向慢慢成长,不失乐趣。
展开
-
U-Boot tools
可以将环境变量写在 txt 文件,通过 mkenvimage 编译成二进制文件作为 U-Boot 的外部环境变量。书写格式按照 key=value 配对。可以给 zImage 添加文件头成为 uImage 格式,也可以根据 its 文件将多个镜像转换为 uImage 格式并合并到一个镜像。将 U-Boot 启动引导命令编译成启动引导文件。原创 2023-12-05 16:20:28 · 761 阅读 · 0 评论 -
U-Boot FIT Image
FIT 镜像一般都是把 data 嵌入到 FIT 结构内部,U-Boot 的 SPL 使用外部 data,也可以使用 data-offset 属性的存在性判断镜像类型。data-size 属性在两种情况下都会存在,但是 data-offset 和 data-position 属性只会存在一个。但是镜像数据也可以存储在 FIT 外部,通过 data-position 或者 data-offset 和 data-size 描述镜像信息,使得 FIT 结构变小。原创 2023-12-04 14:42:23 · 1220 阅读 · 0 评论 -
设备树dts格式、编译和dtb文件结构分析
0x4c、0x6c、0x010c 都是存储 property value,0x4c 后面的 property 地址是 0x5c,因为0x4c 是一个数值占用了 4 bytes;根据最后一个 FDT_END_NODE 的地址可以推算出 dt_string 的开始地址为 0x3e08, dt_struct 的总大小为 0x3dd0,与 size_dt_struct 和 off_dt_strings 的信息一致。node 结构的 name 记录 node name 的存储地址;原创 2023-11-30 16:33:29 · 2370 阅读 · 0 评论 -
U-Boot 串口初始化流程
创建一个标准设备并且注册到标准设备链表,新注册的标准设备数据流依旧是通过全局变量保存的串口设备实现。根据设备树定义的输出设备从 uclass 列表里查找对应设备,在全局变量中保存查找到的设备。参数标记串口设备已经准备完成,并且将串口波特率设置为全局变量中的。在此之前已经从列表顺序里执行了一些初始化,最重要的是。通过设置的标准设备输出,实质依旧是定义的串口设备。,首先对全局变量的两个参数清零,然后开始执行。查找串口设备与标准输入输出设备绑定,在全局变量中设置串口的波特率。完成了设备驱动的初始化。原创 2023-11-15 16:03:43 · 839 阅读 · 0 评论 -
U-Boot驱动定义和查找
***//***/ll_entry_declare 宏定义是创建一个类型为 _type 的结构体,并且存放到 _list_2#_name 程序段。_list 作为分类字段,保证 driver 类型连续在一起,_name作为结构体名称。编译后 map 文件可以看到......原创 2023-11-14 09:52:37 · 156 阅读 · 0 评论 -
U-Boot启动 board_init_f -> init_sequence_f -> initf_dm
开发板:ZYNQ 7000 ZC702Kit Rev1.1。计算当前启动过程使用的时间,并更新计数值用于下一过程。标记当前启动处于哪个过程,并记下当前时钟计数。U-Boot版本:官方2023.04。原创 2023-11-13 17:30:20 · 152 阅读 · 0 评论