4.3 uboot开发 - 非安全启动镜像
- 非安全启动方案启动流程如下:
芯片上电,加载固化在ROM里的代码
->启动GSL
->启动uboot
->引导内核启动
。 - 其中,gsl 为一级 Bootloader,uboot 为二级 Bootloader。
准备 gsl.bin 文件
-
制作步骤如下:
cd ~/hiss928/sdk/ema_2.0.2.2/SS928V100_SDK_V2.0.2.2/osdrv/components tar -xf boot.tar.gz cd boot/gsl/ # 将工具链加入系统路径 source ~/hiss928/sdk/ss928_sdk_g7.3_k4.19/env_setup.sh # 编译 gsl make CHIP=ss928v100 # 最后生成的文件为 pub/gsl.bin
-
编译中遇到的问题:aarch64-mix210-linux-ld:linker.lds:29: syntax error
- 原因:向前翻,可以看到 /bin/sh: line 1: printf: `': invalid format character 错误,该错误导致 TEXT_BASE 未定义
- 解决:修改
cfg.mk
,第 7 行将%\#x
修改为%#x
非安全启动镜像制作
-
制作步骤如下:
cd .. # 拷贝制作需要的脚本文件 cp -rfp image_map ~/hiss928/uboot/ss928_uboot_v2020.1/ cp gsl/pub/gsl.bin ~/hiss928/uboot/ss928_uboot_v2020.1/gsl.loader# 编译 uboot cd ~/hiss928/uboot/ss928_uboot_v2020.1/ make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- distclean make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- ss928v100_emmc_defconfig make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- -j16 make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- u-boot-z.bin# 制作非安全启动镜像 cp -f gsl.loader image_map/gsl.bin cp -f u-boot-ss928v100.bin image_map/u-boot-original.bin cp -f ss928.reg image_map/.reg cd image_map python3 oem/oem_quick_build.py # 最后在 image/oem/ 目录下生成的 boot_image.bin 镜像即为 非安全启动镜像
完善仓库
-
在
.gitignore
文件末尾添加以下内容:*__pycache__/ image_map/image/ image_map/oem/tmp/
-
推送代码到远端。