太强了!Github大佬把NuttX移植到Duo-S上了!

描述

Milk-V DuoS 是一款搭载SG2000 主控,拥有512MB内存和丰富 IO 接口的紧凑型嵌入式开发平台。它集成了 WI-FI 6/BT 5 无线功能,并配备 USB 2.0 HOST 接口和 100Mbps 以太网端口,方便用户使用。它支持双摄像头(2x MIPI CSI 2 通道)和 MIPI 视频输出(MIPI DSI 4 通道),可实现多种应用。DuoS 还支持通过开关在 RISC-V 和 ARM 启动之间切换,适合各种场景和更复杂的项目开发需求。

NuttX是什么?

NuttX是一个专注于标准合规和占用少内存的实时操作系统(RTOS)。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIX和ANSI标准。对于那些标准中没有的部分,如fork()等,则参考了VxWorks或其他RTOS。"

总的来说,NuttX是一个功能丰富、性能稳定,成熟安全的实时操作系统。大家熟悉的Xiaomi Vela,包括索尼的一些产品都是基于NuttX开发的,可以说,对于有过POSIX编程经验,并想使用小型CPU/MCU的用户而言NuttX RTOS是一个绝佳选择。最近,我们惊喜的发现,社区大佬Lup Yuen Lee使用DuoS开发板成功将NuttX移植到了SG2000处理器上! 让我们一起来看看大佬是怎么做到的

Port to SG2000

  1. 大佬使用的系统环境是另一位Github大神Justin Hammond基于sg2000制作的debian risc-v架构的镜像,链接附在下方:(膜拜ing,学的速度都快赶不上大佬们开发速度了!)https://github.com/Fishwaldo/sophgo-sg200x-debian/releases

将镜像烧写到DuoS开发板上,成功后我们可以看到:GitHub

值得注意的地方是,大佬特别提到请使用CP2101型号的USB转串口处理器,若使用CH340系列处理器,屏幕上则会到处打印乱码。

在开机过程中,我们可以通过log发现U-Boot是支持TFTP的,即我们可以将编译好的NuttX Image直接在U-Boot阶段就将固件传进去,是不是非常方便高效!(虽然也可以将编译好的NuttX复制到sd卡上,再插到开发板上,但是如果需要调试则整个过程就会循环往复,十分不便...)使用reboot指令重新启动,然后一直敲击Enter键,就可以进入到U-Boot Command Prompt界面:GitHub

help // 打印所有可执行指令
$ printenv //打印所有的环境变量
$ net list //查看可用网络设备
eth0 : ethernet@4070000 000000:00 active //这里发现我们可以直接通过ethernet来传输和移植NuttX
 

通过查看kernel_addr_r、ramdisk_addr_r等参数,我们就可以正确配置NuttX,使其能将Kernel传到正确的地址上。不过不用担心,贴心的大佬已经替我们做了先行工作,我们可以直接使用编译好的镜像来体验NuttX。

镜像下载:https://github.com/lupyuen2/wip-nuttx/releases/download/sg2000-1/Image

想自己动手试试的朋友可以参考这份帖子,里面大佬也非常详细的说明了如何为SG2000构建NuttX:https://lupyuen.github.io/articles/sg2000#appendix-build-nuttx-for-sg2000

接下来我们就可以配置TFTP, 并将NuttX Image传进RAM里了。请先确保在本地环境上已经装好了TFTP server并完成配置。然后就可以在U-Boot命令行配置:

$ setenv tftp_server 192.168.x.x //本地TFTP地址
$ saveenv //保存配置


$ dhcp ${kernel_addr_r} ${tftp_server}:Image-sg2000
$ tftpboot ${fdt_addr_r} ${tftp_server}:cv181x_milkv_duos_sd.dtb
$ fdt addr ${fdt_addr_r}
$ booti ${kernel_addr_r} - ${fdt_addr_r}
 

如果使用静态IP地址,可能会在第一步dhcp指令失败,这时可以通过设置ipaddr使开发板和pc host在同一子网内,确保互相能ping通,再将第一步的dhcp改为tftpboot即可。

当我们看到nsh>字样时候,证明我们已经成功将NuttX移植到板子上了!GitHub

在仓库的README里,对每个步骤都有更详细的解释,大佬对代码也在不断进行更新,小伙伴们赶快拿起手里的DuoS开发板,一起探索起来!

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分