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
    
  • 编译中遇到的问题: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/
    
  • 推送代码到远端。

相关推荐

  1. 4.5 SS928开发 - uboot开发 - 镜像验证

    2024-04-27 17:40:01       33 阅读
  2. 4.9 SS928开发 - uboot开发 - 环境变量工具使用

    2024-04-27 17:40:01       30 阅读
  3. 1.2 SS928开发 - 开发环境 -工具链安装

    2024-04-27 17:40:01       35 阅读
  4. 5.2 SS928开发 - kernle开发 - 构建脚本

    2024-04-27 17:40:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 17:40:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 17:40:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 17:40:01       87 阅读
  4. Python语言-面向对象

    2024-04-27 17:40:01       96 阅读

热门阅读

  1. 探索树与二叉树:从基础到应用的完整指南

    2024-04-27 17:40:01       25 阅读
  2. C#中如何定义带参数的EventHandler?

    2024-04-27 17:40:01       32 阅读
  3. Ubuntu 18.04 安装 CMake & Ceres-Solver 记录

    2024-04-27 17:40:01       32 阅读
  4. nacos外接mysql的docker部署方式

    2024-04-27 17:40:01       22 阅读
  5. 07_c/c++开源库protobuf序列化

    2024-04-27 17:40:01       38 阅读
  6. 408数据结构专项2011

    2024-04-27 17:40:01       32 阅读
  7. 嵌入式股票行情图片

    2024-04-27 17:40:01       28 阅读
  8. Windows如何安装spark

    2024-04-27 17:40:01       38 阅读
  9. TypeScript 学习笔记

    2024-04-27 17:40:01       30 阅读
  10. vue3组件 描点定位以及监听滚动切换对应activeTab

    2024-04-27 17:40:01       29 阅读