嵌入式技术论坛
直播中

贾伟刚

7年用户 1566经验值
私信 关注
[经验]

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需要简单的修改才能保证编译通过,这里注意讲解 rt-smart 内核固件的烧写与运行

搭建d1-allwinner-nezha 的 rt-smart 最小系统后,在ubuntu RISCV64编译环境下,通过 scons 生成 rtthread.bin文件,初步测试 mkimage 出来的 rtthread.img 暂时无法正常引导,所以直接使用rtthread.bin

在全志在线开发者社区 , 注册一个账号,下载全志Tina Linux SDK,使用这个SDK的好处是,OpenSBI U-Boot 等适配好了,可以编译后直接拿来使用

编译 Tina Linux,过程可以参考全志社区的文章,主要的操作步骤如下

本篇的文章部分参考了全志社区的 rt-smart 相关文章

build 环境设置

source build/envsetup.sh

替换 boot.img

u-boot引导修改

lunch 选择 2. d1-h_nezha-tina

make 编译,如:make -j4,后面的 -j4 根据实际情况可与改大,这样编译会快一些,如果编译失败需要安装一下ubuntu 依赖的软件包

pack 命令打包,打包后镜像,可以烧写到 哪吒开发板 NandFlash中运行

默认 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 引导 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 配置文件


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

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

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

镜像烧写

使用NandFlash引导,首先打开 哪吒的windows的烧写工具:PhoenixSuit.exe,选择 打包好的rt-smart镜像文件:PhoenixSuit.exe

哪吒开发板断电, 按住 按键【FEL】,USB 插入 【OTG】的 USB口上电,等 PhoenixSuit 进入烧写状态,松开 按键 FEL,就可以烧写了,如果第一次,可能需要安装 USB【驱动】



烧写完,开发板重新上电,如拔插【USB】线,板子重启,引导并启动 rt-smart了

备注:哪吒开发板没有引出硬件重启的复位按键,复位引脚的测试点,在板子的背面

启动信息




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

小结

mkimage 出来的 img 镜像文件,无法正确的引导,这个后面抽时间分析,因为这样,就可以直接u-boot bootm 启动了

后面继续研究 rt-smart 的启动流程,用户应用程序的编译 与 烧写方法。


原作者:张世争

更多回帖

发帖
×
20
完善资料,
赚取积分