高效搭建樹(shù)莓派3b rt-thread的開(kāi)發(fā)環(huán)境
掃描二維碼
隨時(shí)隨地手機(jī)看文章
前言
由于電子設(shè)備的普及,越來(lái)越多人擁有樹(shù)莓派,不管是作為電子極客,還是作為普通普通人,很多人都會(huì)玩一下樹(shù)莓派,可以學(xué)習(xí)一些c語(yǔ)言,也可以學(xué)習(xí)嵌入式。下面我來(lái)介紹一下如何在樹(shù)莓派上運(yùn)行rt-thread rtos。
01
準(zhǔn)備條件
本文主要介紹如何快速高效的搭建樹(shù)莓派rt-thread的開(kāi)發(fā)環(huán)境。按照文章的步驟,可以很方便的將rt-thread運(yùn)行起來(lái)。
準(zhǔn)備條件:
1.樹(shù)莓派3b
2.usb轉(zhuǎn)ttl模塊(樹(shù)莓派串口輸出)
3.一臺(tái)裝有Ubuntu16.04的電腦
當(dāng)準(zhǔn)備好這些東西后,就可以開(kāi)啟我們的樹(shù)莓派rt-thread之旅了。
02
源代碼編譯
源代碼倉(cāng)庫(kù)在可以從rt-thread的官網(wǎng)上查看
git clone git@github.com:RT-Thread/rt-thread.git
其中bsp包下已經(jīng)有三個(gè)文件

raspi2:針對(duì)樹(shù)莓派2的bsp,目前功能較少
raspi3-32:樹(shù)莓派3b,基本上比較完善,支持多核
raspi3-64:樹(shù)莓派3b 64位版本
目前我們通過(guò)raspi3-32來(lái)進(jìn)行相關(guān)的演示。
03
開(kāi)發(fā)環(huán)境搭建
Linux下推薦使用gcc工具 gcc-arm-none-eabi-5_4-2016q3,如果還沒(méi)有編譯工具,下載后,解開(kāi)文件。
tar vxf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
Linux環(huán)境下需要修改編譯器目錄設(shè)置,修改bsp/raspi3-32/rtconfig.py中的
EXEC_PATH = r'/opt/gcc-arm-none-eabi-5_4-2016q3/bin'
為編譯工具的實(shí)際所在目錄,這里注意要加上后綴 /bin
進(jìn)入到rt-thread/bsp/raspi3-32目錄中,運(yùn)行以下命令:
scons
可以看到生成對(duì)應(yīng)的kernel7.img,該文件就是可執(zhí)行文件。
04
樹(shù)莓派SD卡的制作
要想編譯出來(lái)的kernel文件正常的運(yùn)行在樹(shù)莓派上,需要制作SD卡鏡像。
格式化SD卡
首先準(zhǔn)備一張SD卡,然后格式化
這里推薦一個(gè)格式化工具gparted。利用這個(gè)工具將SD卡格式化成未分配的即可。

此時(shí)點(diǎn)擊綠色的對(duì)勾就可以完全將SD卡格式化了。
燒錄樹(shù)莓派官方鏡像
然后從樹(shù)莓派官網(wǎng)上下載樹(shù)莓派的鏡像,解壓后燒錄到sd卡上。
sudo dd if=2019-09-26-raspbian-buster-full.img of=/dev/sda bs=4M
當(dāng)然,官網(wǎng)上下載很慢,所以我將這個(gè)鏡像也傳到了百度網(wǎng)盤(pán)上了。
鏈接: https://pan.baidu.com/s/1IqFiGdZXmLzWgqHTL3B8Vw
提取碼: i6wi
去掉Linux鏡像
打開(kāi)制作好的官方的文件,可以看到有幾個(gè)kernel,這幾個(gè)最好都刪掉。

然后用剛才編譯的kernel7.img復(fù)制到這里。
準(zhǔn)備好串口線
目前版本是使用raspi3的 GPIO 14, GPIO 15來(lái)作路口輸出,連線情況如下圖所示:
串口參數(shù):115200 8N1 ,硬件和軟件流控為關(guān)。
按上面的方法做好SD卡后,插入樹(shù)莓派3B,通電可以在串口上看到如下所示的輸出信息:
05
通過(guò)YMODEM下載RTT
上述步驟中,修改代碼后每次都需要重新上電斷電。并且每次都需要將電腦上的鏡像轉(zhuǎn)移到sd卡上。非常不方便開(kāi)發(fā)調(diào)試,為了解決這些問(wèn)題??梢越柚鷘boot的TFTP和Ymodem將內(nèi)核鏡像轉(zhuǎn)移到樹(shù)莓派的內(nèi)存中。
樹(shù)莓派uboot的制作
編譯樹(shù)莓派的uboot
下載地址https://ftp.denx.de/pub/u-boot/
解壓后可以進(jìn)行相關(guān)的操作:
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make rpi_2_defconfig
輸入make后編譯uboot。
當(dāng)然,為了如果不想自己編譯,可以用我已經(jīng)制作好的uboot即可。
鏈接: https://pan.baidu.com/s/1U3QjIqQDA1lvp236RpRaWA
提取碼: 938e
uboot啟動(dòng)設(shè)置
將編譯好的u-boot.bin放到sd卡中,然后修改樹(shù)莓派的啟動(dòng)文件

修改config.txt文件
kernel=u-boot.bin
enable_uart=1
通過(guò)ymodem下載程序并啟動(dòng)
然后將sd卡放在樹(shù)莓派上,上電即可看到樹(shù)莓派正常的啟動(dòng)了。

接著輸入loady 0x00008000 115200

然后輸入Ctrl+A 然后 s的組合鍵

選擇剛才生成的kernel7.img文件即可

下載完成后輸入go 0x8000即可看到正常運(yùn)行

06
總結(jié)
通過(guò)以上的步驟,可以完全的將樹(shù)莓派運(yùn)行起來(lái)。并且通過(guò)uboot作為下載工具,完全的省去了每次都要用讀卡器轉(zhuǎn)移鏡像的煩惱,提高工作效率,讓開(kāi)發(fā)變得更加高效簡(jiǎn)潔。
rt-thread的樹(shù)莓派引入了多核和64位體系架構(gòu),可玩性非常的高,而且基本的外設(shè)也已經(jīng)實(shí)現(xiàn),后續(xù)開(kāi)發(fā)更加便捷,對(duì)于學(xué)習(xí)嵌入式與rtos多核操作非常方便。