
u-boot
文章平均质量分 96
u-boot,编译,配置,启动流程
-佩奇的爸爸
分享开发经验
展开
-
u-boot(六) - 详细启动流程
将__image_copy_end的值赋值给r2,也就是uboot复制结束的地址,从表格中可以知道,此时r2 = 0x87868960,接下来,开始进行uboot代码的拷贝,进入到copy_loop循环,从r1,也就是__image_copy_start开始,读取uboot代码到r10和r11寄存器,一次就拷贝两个32位的数据,r1自动更新,保存下一个需要拷贝的地址,然后将r10和r11里面的数据,写到r0保存的地址,也就是uboot重定位的目的地址,r0自动更新。原创 2024-06-13 23:38:52 · 1338 阅读 · 0 评论 -
u-boot(五) - 启动流程概述
一上电,CPU必定从XIP设备得到第1条指令。XIP设备是指一种可以直接在存储器中执行程序代码的设备,而不需要将代码复制到内存中。XIP的全称是eXecute In Place,即芯片内执行。这类设备包括片内的SRAM、NOR Flash、BootROM等。XIP设备的启动方式是系统上电之后CPU执行的第一条指令是直接在非易失性存储器中执行的,比如被存储在flash中的启动程序,便可以直接在flash中执行,而不需要拷贝到内存中运行。这种启动方式的特点是节省了从存储器到内存的复制过程,从而减少了启动时间和资原创 2024-06-13 23:19:21 · 1378 阅读 · 0 评论 -
u-boot(四)-顶层目录链接脚本文件(u-boot.lds)介绍
对于IMX6ULL,烧写在EMMC、SD/TF卡上的程序,并不能“自己复制自己”,是“别人把它复制到内存里”。一上电首先运行的是boot ROM上的程序,它从EMMC、SD/TF卡上把程序复制进内存里。烧写在EMMC、SD卡或是TF卡上的,除了程序本身,还有位置信息、DCD 信息,这些内容合并成一个映像文件,如下图:这4 部分内容合并成为一个映像文件,烧写在EMMC、SD 卡或TF 卡等启动设备的某个固定地址,boot ROM 程序去这个固定地址读出映像文件。原创 2024-06-13 23:11:56 · 1368 阅读 · 0 评论 -
u-boot(三) - 编译
u-boot-dtb.imx依赖于u-boot-dtb.bin,u-boot-dtb.bin又依赖于u-boot-nodtb.bin和dts/dt.dtb。u-boot-dtb.imx依赖于u-boot-dtb.bin,u-boot-dtb.bin又依赖于u-boot-nodtb.bin和dts/dt.dtb。然后编译dts/dt.dtb;各类u-boot文件都依赖于u-boot,先编译得到u-boot,它由u-boot-init 、u-boot-main 两部分链接而成。原创 2024-06-13 22:59:22 · 1112 阅读 · 0 评论 -
u-boot(二) - 配置
对于各类内核,只要支持menuconfig配置界面,都是使用Kconfig。在配置界面中,可以选择、设置选项,这些设置会保存在.config文件里。编译脚本会包含.config,根据里面的值决定编译哪些文件、怎么编译文件。.config文件也会被转换为头文件,C程序可以从头文件中获得配置信息。原创 2024-06-12 23:33:07 · 1501 阅读 · 0 评论 -
u-boot(一) - 开发环境搭建
芯片厂商一般都会提供烧写工具,除了可以烧写整个系统镜像还可以单独更新单个分区的镜像,比如IMX6ULL芯片可以使用MGTool工具单刷u-boot、kernel、rootfs等,将u-boot-dtb.imx传到windows系统,按照操作文档通过USB将u-boot烧写到EMMC。移植uboot时一般不会直接用 uboot 官方的源码的,官方的源码是给半导体厂商准备的,半导体厂商会根据自家的芯片,维护自己芯片对应的uboot。uboot官网上下载的是最原始的uboot源码。原创 2024-06-12 23:18:24 · 1070 阅读 · 0 评论