Milk-V DuoS 是一款搭載SG2000 主控,擁有512MB內存和豐富 IO 接口的緊湊型嵌入式開發(fā)平臺。它集成了 WI-FI 6/BT 5 無線功能,并配備 USB 2.0 HOST 接口和 100Mbps 以太網(wǎng)端口,方便用戶使用。它支持雙攝像頭(2x MIPI CSI 2 通道)和 MIPI 視頻輸出(MIPI DSI 4 通道),可實現(xiàn)多種應用。DuoS 還支持通過開關在 RISC-V 和 ARM 啟動之間切換,適合各種場景和更復雜的項目開發(fā)需求。
NuttX是什么?
NuttX是一個專注于標準合規(guī)和占用少內存的實時操作系統(tǒng)(RTOS)。它可以在8位到32位的微控制器上部署。NuttX在編寫時主要參照了POSIX和ANSI標準。對于那些標準中沒有的部分,如fork()等,則參考了VxWorks或其他RTOS。"
總的來說,NuttX是一個功能豐富、性能穩(wěn)定,成熟安全的實時操作系統(tǒng)。大家熟悉的Xiaomi Vela,包括索尼的一些產(chǎn)品都是基于NuttX開發(fā)的,可以說,對于有過POSIX編程經(jīng)驗,并想使用小型CPU/MCU的用戶而言NuttX RTOS是一個絕佳選擇。最近,我們驚喜的發(fā)現(xiàn),社區(qū)大佬Lup Yuen Lee使用DuoS開發(fā)板成功將NuttX移植到了SG2000處理器上! 讓我們一起來看看大佬是怎么做到的
Port to SG2000
- 大佬使用的系統(tǒng)環(huán)境是另一位Github大神Justin Hammond基于sg2000制作的debian risc-v架構的鏡像,鏈接附在下方:(膜拜ing,學的速度都快趕不上大佬們開發(fā)速度了?。﹉ttps://github.com/Fishwaldo/sophgo-sg200x-debian/releases
將鏡像燒寫到DuoS開發(fā)板上,成功后我們可以看到:
值得注意的地方是,大佬特別提到請使用CP2101型號的USB轉串口處理器,若使用CH340系列處理器,屏幕上則會到處打印亂碼。
在開機過程中,我們可以通過log發(fā)現(xiàn)U-Boot是支持TFTP的,即我們可以將編譯好的NuttX Image直接在U-Boot階段就將固件傳進去,是不是非常方便高效?。m然也可以將編譯好的NuttX復制到sd卡上,再插到開發(fā)板上,但是如果需要調試則整個過程就會循環(huán)往復,十分不便...)使用reboot指令重新啟動,然后一直敲擊Enter鍵,就可以進入到U-Boot Command Prompt界面:
$help//打印所有可執(zhí)行指令
$printenv//打印所有的環(huán)境變量
$netlist//查看可用網(wǎng)絡設備
eth0:ethernet@4070000000000:00active//這里發(fā)現(xiàn)我們可以直接通過ethernet來傳輸和移植NuttX
通過查看kernel_addr_r、ramdisk_addr_r等參數(shù),我們就可以正確配置NuttX,使其能將Kernel傳到正確的地址上。不過不用擔心,貼心的大佬已經(jīng)替我們做了先行工作,我們可以直接使用編譯好的鏡像來體驗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里了。請先確保在本地環(huán)境上已經(jīng)裝好了TFTP server并完成配置。然后就可以在U-Boot命令行配置:
$setenvtftp_server192.168.x.x//本地TFTP地址
$saveenv//保存配置
$dhcp${kernel_addr_r}${tftp_server}:Image-sg2000
$tftpboot${fdt_addr_r}${tftp_server}:cv181x_milkv_duos_sd.dtb
$fdtaddr${fdt_addr_r}
$booti${kernel_addr_r}-${fdt_addr_r}
如果使用靜態(tài)IP地址,可能會在第一步dhcp指令失敗,這時可以通過設置ipaddr使開發(fā)板和pc host在同一子網(wǎng)內,確?;ハ嗄躳ing通,再將第一步的dhcp改為tftpboot即可。
當我們看到nsh>字樣時候,證明我們已經(jīng)成功將NuttX移植到板子上了!
在倉庫的README里,對每個步驟都有更詳細的解釋,大佬對代碼也在不斷進行更新,小伙伴們趕快拿起手里的DuoS開發(fā)板,一起探索起來!
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304797 -
開發(fā)板
+關注
關注
25文章
5032瀏覽量
97371 -
GitHub
+關注
關注
3文章
468瀏覽量
16427
發(fā)布評論請先 登錄
相關推薦
評論