我是靠谱客的博主 谨慎水壶,最近开发中收集的这篇文章主要介绍D1 哪吒开发板 了解基本的启动加载流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

  • 熟悉一个嵌入式平台,需要了解这个平台的启动方式,如Nand Flash、Nor Flash、SD卡等

  • 不同的启动方式,可能固件本身存放的位置也不同,如Nand Flash启动,需要把各个固件,如boot0、uboot、kernel、rootfs等,先下载到指定的位置,或者说指定的存储【分区】,把固件存储分块,用于存放不同功能的固件

  • 像SD卡、NandFlash等,一般不支持代码直接执行,所以像Linux等系统,都是通过bootloader,提前把系统启动起来,如初始化好RAM(SDRAM、DDR SDRAM等),把代码拷贝到RAM中执行,因此Nand Flash、SD卡作用主要是用于存储代码与数据,RAM用于系统的启动与运行,代码的执行

  • 很多的CPU芯片,都支持多级启动方式,哪吒开发板上的全志D1 CPU,基于 RISCV64为的平头哥 C906核心,也支持多种的启动方式,如SD卡、Nand Flash等

  • uboot 是常见的boot 加 loader,也就是具备启动与加载的功能,具备固件升级的功能,但是CPU上电,还是要有一个原始的启动流程,这个流程基于CPU的ROM启动方式,如使用Nand Flash引导,需要boot 模式选择 Nand Flash,CPU 上电时会主动把 Nand Flash 中的一小部分代码,拷贝到RAM去执行,这就是 CPU ROM 本身的boot功能,硬件固化的,用户擦出不掉。

  • 这【小段代码】,本身需要做好系统的基本初始化,如系统时钟配置、DEBUG引脚配置、RAM初始化等,并且具备【二级跳转功能】,跳转到 uboot等 bootloader。换句话说,CPU 本身的ROM固件,不支持直接加载Uboot,而是需要一个bootstrap 类型的 boot代码,通过这个bootstrap 启动 uboot,再去继续引导Linux等操作系统,再去加载文件系统,这样一级一级的跳转与执行

  • 哪吒开发板上的全志D1 CPU,采用的是:OpenSBI,作为 boot0 的方式,CPU 上电后,首先运行 ROM中的引导加载程序,执行 OpenSBI,然后把系统初步初始化好,接着就去跳转运行uboot等固件

  • OpenSBI 算是 全志 D1 CPU 的逻辑程序,可能受到启动引导方式的限制,这个OpenSBI的固件大小会受到限制

启动流程

  • D1 哪吒开发板,在没有插入SD卡的情况下,默认会启动板载的Tina Linux,这个启动可以通过查看【DEBUG】串口的启动信息获取

  • 基本的引导启动方式为:

  • CPU ROM 切到 Nand Flash引导方式

    • OpenSBI v0.6
    • U-Boot 2018.05
    • Linux version 5.4.61
    • BusyBox v1.27.2
  • 这算是标准Linux 系统启动流程了

  • OpenSBI
    在这里插入图片描述

  • U-Boot
    在这里插入图片描述

  • Linux kernel
    在这里插入图片描述

  • BusyBox rootfs
    在这里插入图片描述

其他思考

  • 如果启动RT-Thread 的 rt-smart 操作系统,这个基于Nand Flash的启动加载流程会是什么样子呢?

  • 我初步认为可以是:

  • CPU ROM 切到 Nand Flash引导方式

    • OpenSBI v0.6
    • U-Boot
    • rt-smart
    • userapps
  • SD卡的启动方式,后面再继续研究

小结

  • 初步接触 D1 哪吒开发板,开始了解系统的启动引导方式,了解固件的下载方式

  • 固件下载可以使用:全志的 PhoenixSuit 工具,目前USB 驱动连接上了,但是 生成的rt-smart img 镜像工具不识别,所以需要继续研究

在这里插入图片描述

在这里插入图片描述

  • 换句话说,需要找一个支持烧写 boot0 的工具,这个PhoenixSuit工具,估计只支持 Linux的那一套固件的烧写,默认使用uboot 加载引导的方式。

  • 后面研究Nand Flash【空片】烧写、rt-smart 镜像的烧写方式

最后

以上就是谨慎水壶为你收集整理的D1 哪吒开发板 了解基本的启动加载流程的全部内容,希望文章能够帮你解决D1 哪吒开发板 了解基本的启动加载流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部