1.引言
RT-Thread Smart v5.1.0 已經(jīng)正式發(fā)布。這一版本在內(nèi)核和功能上做了大量的改進(jìn)與增強(qiáng)。我們可以在ART-Pi Smart開發(fā)板盡情探索這一新版更完善更強(qiáng)大的RT-Thread Smart操作系統(tǒng)。ART-Pi Smart開發(fā)板搭載了米爾科技的i.MX6ULL核心板,硬件設(shè)計(jì)和制作由韋東山團(tuán)隊(duì)完成,整體的BSP板級支持包由社區(qū)完成。這是首個(gè)運(yùn)行 RT-Thread Smart 的 ARM Cortex-A7 開發(fā)板,具有強(qiáng)大的硬件性能和豐富的外設(shè)接口,非常適合學(xué)習(xí),開發(fā)和調(diào)試RT-Thread Smart系統(tǒng)。
硬件規(guī)格情況
在ART-Pi Smart的板卡上包括了百兆以太網(wǎng),TF卡插槽,USB device,USB host接口,以及RW007 WiFi模塊,Type-C的USB UART,RGB888 FPC座,Camera FPC座等資源。核心板上板載i.MX6ULL 800MHz ARM Cortex-A7單核32位處理器,512MB DDR3內(nèi)存,4GB eMMC。
2. RT-Thread Smart v5.1.0 新體驗(yàn)
RT-Thread v5.1.0 版本的 Smart 中帶來了諸多改進(jìn)和新功能,以下是一些和Smart系統(tǒng)密切相關(guān)的主要新增特性和增強(qiáng)點(diǎn):
● 更完善的libc支持:高性能互斥鎖 futex 和原生 libc 動(dòng)態(tài)鏈接功能,使系統(tǒng)在多任務(wù)處理和內(nèi)存管理上更高效。新增或修復(fù)了 setitimer、setaffinity 等API,提升了系統(tǒng)的靈活性和穩(wěn)定性。
● 更完善的 POSIX 終端支持:
○ 完整的終端設(shè)備及偽終端設(shè)備支持
○ 可嵌套,支持作業(yè)控制,支持系統(tǒng)調(diào)用重啟的 POSIX 信號支持
○ 進(jìn)程組和會(huì)話管理
○ 新的IPC方法 `rt_condvar`
○ dfsv2 devfs 支持符號鏈接等功能。
○ ……
這些特性不僅使 RT-Thread Smart 在功能上更加完善,同時(shí)也提升了系統(tǒng)的穩(wěn)定性和性能,為開發(fā)者提供了更強(qiáng)大的工具和更多的可能性。
3. 快速上手
下面介紹如何在ART-Pi Smart開發(fā)板上運(yùn)行v5.1.0版本RT-Thread Smart操作系統(tǒng)。
○ 搭建xmake編譯環(huán)境
對于RT-Thread Smart的開發(fā),推薦使用Linux Ubuntu環(huán)境,也可以遠(yuǎn)程使用Linux環(huán)境,在Windows桌面上使用VSCode登陸到Linux Ubuntu環(huán)境上使用。
在Linux Ubuntu下需要先安裝xmake環(huán)境
1sudoadd-apt-repositoryppa:xmake-io/xmake
2sudoaptupdate
3sudoaptinstallxmake
○ 應(yīng)用編譯
拉取用戶態(tài)應(yīng)用倉庫 https://github.com/RT-Thread/userapps.git 可以獲得一些示例程序工程。我們通過 xmake f 命令配置構(gòu)建的目標(biāo)平臺,使用 xmake 命令編譯構(gòu)建工程,最后通過 xmake smart-rootfs -f fat 命令將構(gòu)建完成的產(chǎn)物制作為 fat 格式的根文件系統(tǒng)鏡像。這個(gè)鏡像會(huì)在后面被燒錄到 sd 卡中使用。
1sourceenv.sh//設(shè)置環(huán)境變量
2//編譯app
3cdapps
4//配置為arm平臺
5xmakef-aarm
6xmake-j8
7//生成rootfs
8xmakesamrt-image-ffat
○ 內(nèi)核編譯
前面xmake已經(jīng)下載了工具鏈,工具鏈具體位置在這里(arm-smart-musleabi 路徑后的數(shù)字可能因?yàn)榘姹靖露煌?/p>
1~/.xmake/packages/a/arm-smart-musleabi/211536-3de435f234/f5d0c3febbd2497fa950eb569871a3c0
進(jìn)入bsp目錄 rt-thread/bsp/nxp/imx/imx6ull-smart
1#更新在線軟件包(主要涉及wifi軟件包)
2source~/.env/env.sh
3pkgs--update
4#編譯內(nèi)核
5scons-j8
○ eMMC鏡像制作
ART-Pi Smart 支持 eMMC,SD,tftp 等方式啟動(dòng)內(nèi)核。我們以 eMMC 為例子說明。在 bsp 目錄下,可以看到 ./emmc/boot.fat文件。這是一個(gè)預(yù)先制作的 fat 文件系統(tǒng)鏡像,其中已經(jīng)包含一些文件。我們創(chuàng)建 tmp 目錄,將 boot.fat 臨時(shí)本地掛載到 tmp 目錄下,使用tree命令可以看到如下的文件目錄結(jié)構(gòu)。
1.
2├──boot.fat
3├──image
4│├──genimage
5│├──genimage.cfg
6│├──images
7││└──art-pi.img
8│├──input
9││├──boot.fat
10││└──u-boot-dtb.imx
11│├──root
12│└──tmp
13│└──root
14└──tmp
15├──bin
16│└──ash
17├──etc
18│└──inittab
19├──kernel
20│├──rtthread.bin
21│├──rtthread.elf
22│├──rtthread.img
23│└──rtthread.imx
24├──root
25│└──bin
26│└──hello.elf
27└──sbin
28└──init
●tmp/kernel下是內(nèi)核相關(guān)文件
●tmp/sbin/init和tmp/bin/ash用來開機(jī)啟動(dòng)ash
●tmp/root/bin是應(yīng)用文件夾,可以放置一些自定義應(yīng)用
每次更新內(nèi)核/應(yīng)用,可以參考以下腳本內(nèi)容生成新的art-pi.img映像文件
1sudomount./boot.fat./tmp/
2sudorm-rftmp/kernel/*
3sudocp-r../rtthread.bintmp/kernel/
4sudocp-r../rtthread.elftmp/kernel/
5sudocp-r../rtthread.imgtmp/kernel/
6sudocp-r../rtthread.imxtmp/kernel/
7sudosync
8sudoumount./tmp
9sudocpboot.fatimage/input/
10cdimage
11mkdirroot
12rm-rftmp
13./genimage
art-pi.img位置在rt-thread/bsp/nxp/imx/imx6ull-smart/emmc/image/images目錄下
○ 鏡像燒寫
1. 首先準(zhǔn)備一臺 Windows 測試電腦,下載 100ask_imx6ull 燒寫工具(由百問網(wǎng)提供)
a. 工具下載地址:
https://github.com/100askTeam/gui_for_nxp_uuu/blob/master/100ask_imx6ull%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7/100ask_imx6ull_flashing_tool.exe
b. 100ask_imx6ull 燒寫工具需要到 GitHub 去下載,網(wǎng)絡(luò)不穩(wěn)定。如果出現(xiàn)無法訪問或無法下載,請多刷新網(wǎng)頁多嘗試幾次
2. 將用于燒錄的 USB Type-C(上方口) 先連接到 Windows 測試電腦
3. 將另外一個(gè) USB Type-C(下方口)也連接上 Windows 測試電腦,給開發(fā)板供電
4. 在測試電腦上,打開串口調(diào)試終端:115200 波特率、8位數(shù)據(jù)位、1位停止位、無奇偶校驗(yàn)、無流控
5. 先拔掉 ART-Pi Smart 開發(fā)板上的 SD 卡(必須先拔掉 SD 卡)
6. 配置 ART-Pi Smart 開發(fā)板進(jìn)入到 USB 固件下載模式
操作方法:開發(fā)板上電之后,先按下 "BOOT 啟動(dòng)按鍵" 不松開,再按下 “RST 復(fù)位鍵”,即可切換到 USB 固件下載模式。
7.Windows 主機(jī)電腦上,打開燒錄工具 100ask_imx6ull_flashing_tool.exe,查看燒錄工具是否與ART-Pi Smart USB 連接成功
在燒寫軟件的專業(yè)版,燒寫制作的鏡像文件art-pi.img
○運(yùn)行系統(tǒng)和應(yīng)用
在運(yùn)行系統(tǒng)之前,還有一件必不可少的工作 —— 準(zhǔn)備根文件系統(tǒng)鏡像。根文件系統(tǒng)提供了應(yīng)用程序運(yùn)行的必要環(huán)境。前文提到,我們在 userapp 倉庫已經(jīng)構(gòu)建好了根文件系統(tǒng)。在前面我們以 eMMC 為例介紹了內(nèi)核燒錄的方式。這里換一種方式,我們以 SD/TF 卡為例子介紹根文件系統(tǒng)。
首先準(zhǔn)備一張SD/TF卡,在Linux下為其創(chuàng)建一個(gè)大于1GB的分區(qū)作為第一分區(qū),在userapp/apps/build下使用sudo dd if=fat.img of=/dev/sdb1命令將根文件系統(tǒng)燒入SD/TF卡中(這里的sd*根據(jù)自己SD/TF卡所在位置來設(shè)置):
系統(tǒng)上電后我們進(jìn)入 uboot 并將 bootcmd 修改如下。
1bootcmd=fatloadmmc1:10x80001000/kernel/rtthread.bin;dcacheflush;go0x80001000
將SD卡插入再重新啟動(dòng)開發(fā)板后使用mount sd01 /mnt 將SD卡掛載到處我們的mnt目錄下,進(jìn)入mnt目錄即可看到我們剛剛用userapp制作好的文件系統(tǒng)。
進(jìn)入/mnt/bin目錄下可以看到該目錄下已經(jīng)包含了一些可執(zhí)行程序。以 hello 程序?yàn)槔?,輸入命令?zhí)行程序,將得到如下輸出。
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6684瀏覽量
123140 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
4896瀏覽量
97058 -
ART
+關(guān)注
關(guān)注
0文章
26瀏覽量
10472 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1261瀏覽量
39836
發(fā)布評論請先 登錄
相關(guān)推薦
評論