当前位置:   article > 正文

4.3 海思SS928开发 - uboot开发 - 非安全启动镜像制作

4.3 海思SS928开发 - uboot开发 - 非安全启动镜像制作

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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 编译中遇到的问题: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 镜像即为 非安全启动镜像
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

完善仓库

  • .gitignore 文件末尾添加以下内容:

    *__pycache__/
    image_map/image/
    image_map/oem/tmp/
    
    • 1
    • 2
    • 3
  • 推送代码到远端。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/497676
推荐阅读
相关标签
  

闽ICP备14008679号