启动介质可以是板载的inand、SD、USB、串口。其中inand和SD卡启动比较类似。本次主要是烧录SD卡并启动。
第一步、编译官方提供的uboot
配置好编译工具链后,在源码根目录先执行make x210_sd_config,再执行make进行编译。得到u-boot.bin映像
第二步、将映像写进SD卡
写SD卡有两种方式
1、windows下使用官方工具直接将映像写入SD,操作方便,但是屏蔽了一些细节。
2、Linux下使用dd命令将映像文件写入SD卡指定块,写到哪个块就要看启动代码,在复制时是从哪个扇区复制的。
从启动过程的分析可以知道,完全启动uboot要将他分为两部分,BL1和BL2。
第三步、上电启动
上电。
实操遇到的问题:使用win工具烧录提供的bin镜像到SD卡,可以运行。
win工具 | linux命令 | |
官方镜像bin | 可运行 | 不行 |
自己编译的bin | 不行 | 不行 |
分析启动代码后发现可能是BL2写入位置不对,导致BL2(完整镜像bin)不能启动,这个原因可解释linux没有烧录成功的问题,要进一步实验。
用win工具写自己编译的bin还是不行。
更正BL2地址后linux烧录可正常运行,用工具还是不行。
#!/bin/sh
sudo dd iflag=dsync oflag=dsync if=./BL1.bin of=/dev/sdb seek=1
sudo dd iflag=dsync oflag=dsync if=./BL2.bin of=/dev/sdb seek=49
win工具 | linux命令 | |
官方镜像bin | 可运行 | 可运行 |
自编译的bin | 不行 | 可运行 |