Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
rt-smart
D1 哪吒开发板 rt-smart 烧写与运行
发布于 2022-06-14 23:38:23 浏览:1891
订阅该版
[tocm] ## 前言 - 全志 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](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/](https://www.aw-ol.com/) , 注册一个账号,下载全志`Tina Linux` SDK,使用这个SDK的好处是,`OpenSBI` `U-Boot` 等适配好了,可以编译后直接拿来使用 - 编译 `Tina Linux`,过程可以参考全志社区的文章,主要的操作步骤如下 - 本篇的文章部分参考了全志社区的 rt-smart 相关文章 - build 环境设置 ```bash source build/envsetup.sh ``` - lunch 选择 `2. d1-h_nezha-tina` ![2022-06-14_230714.png](https://oss-club.rt-thread.org/uploads/20220614/c851e3e3d876653203996bffc9a04de2.png "2022-06-14_230714.png") - 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` 配置文件 ![2022-06-14_232438.png](https://oss-club.rt-thread.org/uploads/20220614/0dbb7f9bdd8ede7de45965f34658b6e2.png "2022-06-14_232438.png") ![2022-06-14_231907.png](https://oss-club.rt-thread.org/uploads/20220614/af8ce3c51bf217ed30cb190d014e250b.png "2022-06-14_231907.png") - rt-smart 不使用 Linux 的 rootfs,所以删除 rootfs的分区,这样`pack` 打包后的 镜像文件就变小了 `tina-d1-h/device/config/chips/d1-h/configs/nezha/sys_partition.fex` ![2022-06-14_232607.png](https://oss-club.rt-thread.org/uploads/20220614/ca1563ec31e75fe5ff8452a4023d415d.png "2022-06-14_232607.png") - 修改完上面的,可以再次 `make` 编译 ,并使用 rtthread.bin 替换 `tina-d1-h/out/d1-h-nezha/boot.img`, 再运行 `pack` 命令,这样打包后的镜像,就是 rt-smart的启动镜像文件了 ![2022-06-14_224623.png](https://oss-club.rt-thread.org/uploads/20220614/2dffbf2de685de966b07068eccd4d148.png "2022-06-14_224623.png") ## 镜像烧写 - 使用NandFlash引导,首先打开 哪吒的windows的烧写工具:`PhoenixSuit.exe`,选择 打包好的rt-smart镜像文件:`PhoenixSuit.exe` - 哪吒开发板断电, 按住 按键【FEL】,USB 插入 【OTG】的 USB口上电,等 `PhoenixSuit` 进入烧写状态,松开 按键 FEL,就可以烧写了,如果第一次,可能需要安装 USB【驱动】 ![2022-06-14_223623.png](https://oss-club.rt-thread.org/uploads/20220614/a1b61d2a7f6bfc9c16c839371e62b7a7.png.webp "2022-06-14_223623.png") ![2022-06-14_224800.png](https://oss-club.rt-thread.org/uploads/20220614/2cc480e0658c49c446ff1a5113ef64f5.png.webp "2022-06-14_224800.png") ![2022-06-14_223650.png](https://oss-club.rt-thread.org/uploads/20220614/5c9b8aed2abbf529b57cd7453ac90256.png.webp "2022-06-14_223650.png") - 烧写完,开发板重新上电,如拔插【USB】线,板子重启,引导并启动 rt-smart了 - 备注:哪吒开发板没有引出硬件重启的复位按键,复位引脚的测试点,在板子的背面 ## 启动信息 ![2022-06-14_224954.png](https://oss-club.rt-thread.org/uploads/20220614/a53628cb4f3a767ec59333b662d995e6.png "2022-06-14_224954.png") ![2022-06-14_225016.png](https://oss-club.rt-thread.org/uploads/20220614/dfc80c304e9dbfd4c58ce972f3ade647.png "2022-06-14_225016.png") ![2022-06-14_223843.png](https://oss-club.rt-thread.org/uploads/20220614/05cf86ee6a5764a0012fe452aaf7deb3.png "2022-06-14_223843.png") ![2022-06-14_224914.png](https://oss-club.rt-thread.org/uploads/20220614/54cdf59d8309ded6f1fbe81a33e08054.png "2022-06-14_224914.png") - 至此 rt-smart 初步在【哪吒开发板】d1-h 上运行起来了 ## 小结 - mkimage 出来的 img 镜像文件,无法正确的引导,这个后面抽时间分析,因为这样,就可以直接u-boot bootm 启动了 - 后面继续研究 rt-smart 的启动流程,用户应用程序的编译 与 烧写方法
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
809
被采纳
175
关注TA
发私信
相关文章
1
rt-smart发布时间
2
rt-smart qemu-vexpress-a9 编译报错
3
rt-smart分支编译rasp4-32bsp报错
4
rt-smart qemu-vexpress-a9 win10编译脚本问题
5
rt-smart qemu-vexpress-a9 linux 下crtl+c
6
rt-smart + pthread 编译报错
7
rt-smart的rt_channel实现问题
8
关于rt-smart的musl-libc
9
RT-Smart Windows 编译 qemu-vexpress-a9 出错
10
用户程序在RT-Smart存在的方式
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部