0
点赞
收藏
分享

微信扫一扫

D1 哪吒开发板 rt-smart 烧写与运行


前言

  • 全志 allwinner D1 哪吒开发板基于​​RISC-V​​ 64位架构,平头哥64位C906核心,默认运行Linux系统,通过简单的修改,可以运行rt-smart
  • rt-smart 当前不能直接从NandFlash 加载运行,需要借助bootloader,如 U-Boot
  • 借助全志的 ​​tina Linux​​,把 Linux 内核文件替换为 rt-smart内核文件,运行 rt-smart 内核

操作步骤

  • 首先搭建基于 rt-smart 的最小系统,也就是 rt-smart 内核文件 加上 BSP ​​d1-allwinner-nezha​​,搭建的过程还算顺利,不过​​d1-allwinner-nezha​​的当前BSP需要简单的修改才能保证编译通过,这部分的操作可以查看 ​​https://gitee.com/zhangsz0516/allwinner_d1s​​ 后面会整理详细的搭建流程,这里注意讲解 rt-smart 内核固件的烧写与运行
  • 搭建​​d1-allwinner-nezha​​ 的 rt-smart 最小系统后,在ubuntu RISCV64编译环境下,通过 ​​scons​​ 生成 ​​rtthread.bin​​文件,初步测试 ​​mkimage​​ 出来的 ​​rtthread.img​​ 暂时无法正常引导,所以直接使用​​rtthread.bin​
  • 在全志在线开发者社区 ​​https://www.aw-ol.com/​​ , 注册一个账号,下载全志​​Tina Linux​​ SDK,使用这个SDK的好处是,​​OpenSBI​​ ​​U-Boot​​ 等适配好了,可以编译后直接拿来使用
  • 编译 ​​Tina Linux​​,过程可以参考全志社区的文章,主要的操作步骤如下
  • 本篇的文章部分参考了全志社区的 rt-smart 相关文章
  • build 环境设置

source build/envsetup.sh

  • lunch 选择 ​​2. d1-h_nezha-tina​

D1 哪吒开发板 rt-smart 烧写与运行_d1

  • make 编译,如:​​make -j4​​,后面的 ​​-j4​​ 根据实际情况可与改大,这样编译会快一些,如果编译失败需要安装一下ubuntu 依赖的软件包
  • ​pack​​ 命令打包,打包后镜像,可以烧写到 哪吒开发板 NandFlash中运行

替换 boot.img

  • 默认 ​​Tina Linux​​ 打包后是 Linux 系统镜像,如果想替换为 rt-smart,最简单的方式就是使用 rt-smart 替换Linux内核文件
  • 通过对 ​​Tina Linux​​ 的产物初步了解, Linux 内核在 ​​boot.img​​ 中,而 当前 哪吒开发板的下载工具,只支持 ​​Tina Linux​​ pack后的镜像文件
  • 也就是 使用 rtthread.bin 替换 ​​boot.img​​,再使用 ​​pack​​ 打包,这样生成的:​​tina-d1-h/out/d1-h-nezha/tina_d1-h-nezha_uart0.img​​,就可以使用 哪吒的下载工具烧写了,这里烧写到 NandFlash中
  • 哪吒烧写工具是:​​PhoenixSuit.exe​

u-boot引导修改

  • U-Boot 引导 Linux 内核,一般默认把内核读取到RAM中,使用 ​​bootm​​引导,如:​​sunxi_flash read 45000000 ${boot_partition};bootm 45000000​​,这里需要把 ​​bootm​​ 替换为 ​​go​​ 命令,这样直接运行 rt-smart 编译后的 rtthread.bin
  • 系统启动后进入u-boot 的命令行,通过 ​​setenv​​ 命令修改,也可以进入 ​​Tina Linux​​,修改:​​tina-d1-h/device/config/chips/d1-h/configs/nezha/env.cfg​​ 配置文件

D1 哪吒开发板 rt-smart 烧写与运行_哪吒开发板_02


D1 哪吒开发板 rt-smart 烧写与运行_d1_03

  • rt-smart 不使用 Linux 的 rootfs,所以删除 rootfs的分区,这样​​pack​​ 打包后的 镜像文件就变小了

​tina-d1-h/device/config/chips/d1-h/configs/nezha/sys_partition.fex​

D1 哪吒开发板 rt-smart 烧写与运行_开发板_04

  • 修改完上面的,可以再次 ​​make​​​ 编译 ,并使用 rtthread.bin 替换 ​​tina-d1-h/out/d1-h-nezha/boot.img​​​, 再运行 ​​pack​​ 命令,这样打包后的镜像,就是 rt-smart的启动镜像文件了

D1 哪吒开发板 rt-smart 烧写与运行_d1_05

镜像烧写

  • 使用NandFlash引导,首先打开 哪吒的windows的烧写工具:​​PhoenixSuit.exe​​,选择 打包好的rt-smart镜像文件:​​PhoenixSuit.exe​
  • 哪吒开发板断电, 按住 按键【FEL】,USB 插入 【OTG】的 USB口上电,等 ​​PhoenixSuit​​ 进入烧写状态,松开 按键 FEL,就可以烧写了,如果第一次,可能需要安装 USB【驱动】

D1 哪吒开发板 rt-smart 烧写与运行_rt-smart_06

D1 哪吒开发板 rt-smart 烧写与运行_哪吒开发板_07

D1 哪吒开发板 rt-smart 烧写与运行_rt-smart_08

  • 烧写完,开发板重新上电,如拔插【USB】线,板子重启,引导并启动 rt-smart了
  • 备注:哪吒开发板没有引出硬件重启的复位按键,复位引脚的测试点,在板子的背面

启动信息

D1 哪吒开发板 rt-smart 烧写与运行_d1_09

D1 哪吒开发板 rt-smart 烧写与运行_rt-smart_10

D1 哪吒开发板 rt-smart 烧写与运行_重启_11

D1 哪吒开发板 rt-smart 烧写与运行_重启_12

  • 至此 rt-smart 初步在【哪吒开发板】d1-h 上运行起来了

小结

  • mkimage 出来的 img 镜像文件,无法正确的引导,这个后面抽时间分析,因为这样,就可以直接u-boot bootm 启动了
  • 后面继续研究 rt-smart 的启动流程,用户应用程序的编译 与 烧写方法


举报

相关推荐

0 条评论