做零食网站的选题理由,互联网销售平台有哪些,企业解决方案模板,是普通网站地图好还是rss地图好一点一、u-boot简介
uboot是一种通用的引导加载程序#xff0c;它可以用于多种嵌入式系统#xff0c;支持多种操作系统#xff0c;如Linux, Android,NetBSD等。uboot的主要作用是将操作系统内核从存储设备#xff08;如Flash, SD卡等#xff09;加载到内存中#xff0c;并执…一、u-boot简介
uboot是一种通用的引导加载程序它可以用于多种嵌入式系统支持多种操作系统如Linux, Android,NetBSD等。uboot的主要作用是将操作系统内核从存储设备如Flash, SD卡等加载到内存中并执行内核代码。
二、XIP设备
XIP设备是指一种可以直接在存储器中执行程序代码的设备而不需要将代码复制到内存中。XIP的全称是eXecute In Place即芯片内执行。像片内的SRAM NOR Flash BROM等。
三、为什么需要u-boot
因为嵌入式系统的硬件资源有限CPU上电后只能执行一小段内置的代码BROM System这段代码不足以完成内存初始化文件系统访问网络通信等复杂的任务。因此需要一个中间层的程序来完成这些工作并引导操作系统启动。
四、u-boot启动流程 执行顺序 1. 当H616芯片上电或复位后brom会自动执行它会根据芯片的引脚电平或寄存器设置确定启动模式如从nand flashspi flashsd卡usb等设备中启动。 2. brom会根据启动模式选择相应的设备驱动初始化SD卡设备控制器设置设备参数如时钟频率总线宽度电压等级等 3. brom会从启动设备的特定扇区中读取第一级引导程序如spl将其加载到芯片的内部sram中并跳转到其入口点执行 4. spl会继续初始化一些硬件设备如ddrpllgpio等然后从启动设备的特定分区中读取第二级引导程序如uboot proper将其加载到ddr中并跳转到其入口点执行, 5. uboot会继续初始化一些硬件设备如网卡lcd,从SD卡中读取内核文件启动操作系统。
五、u-boot编译流程
方法一
1. 运行 build.sh 脚本 记得加 sudo 权限 testtest:~/orangepi-build$ sudo ./build.sh 2. 选择 U-boot package 然后回车
3. 接着选择开发板的型号
4. 重复编译 u-boot 时 使用下面的命令无需通过图形界面选择 可以直接开始编译 u-boot sudo ./build.sh BOARDorangepizero2 BRANCHnext BUILD_OPTu-boot 5. 查看编译生成的 u-boot deb 包 testtest:~/orangepi-build$ ls output/debs/u-boot/linux-u-boot-nextorangepizero2_ 3.1.0_arm64.deb 6. 然后登录到H616开发板 卸载已安装的 u-boot 的 deb 包 dpkg -l | grep linux-u-boot #查看u-boot包名称 sudo apt purge -y linux-u-boot-orangepizero2-current #卸载上面查找到的u-boot包名 称,有可能是linux-u-boot-orangepizero2-next 7. 再安装刚才上传的新的 u-boot 的 deb 包 sudo dpkg -i linux-u-boot-next-orangepizero2_3.1.0_arm64.deb sudo nand-sata-install #一路回车 sudo reboot -f 方法二
1、清理u-boot sudo chown test:test v2021.10-sunxi -R #修改所属用户为当前用户根据实际用户名修改保证当前用户下权限没有问题 cd v2021.10-sunxi make distclean 2、配置u-boot生成.config配置文件 make -j6 orangepi_zero2_defconfig CROSS_COMPILEaarch64-none-linux-gnu- 3、编译uboot 生成u-boot-sunxi-with-spl.bin make -j6 CROSS_COMPILEaarch64-none-linux-gnu- 4、将生成的u-boot-sunxi-with-spl.bin 拷贝到开发板上参考官网对BROM的启动及SD卡数据组成的说明 然后执行如下命令 dd if/dev/zero of/dev/mmcblk1 bs1k count1023 seek1 statusnoxfer #格式化1k到 1M为止的数据 dd ifu-boot-sunxi-with-spl.bin of/dev/mmcblk1 bs1k seek8 convfsync