1.前言
RT-Thread這一個作業系統獲得很多工程師的好評,使用簡單,支持多,有軟體包可以下載,甚至未來會有更多MicroPython的支持,能夠兼容主流的一些MCU,總得來說,這對于快速開發是一件大好事
這一篇就說明一下如何好好的使用RT-Thread開發,
2.使用的軟體與下載安裝
主要要用的有兩個一個是RT-Thread Studio,這個是IDE,另外一個是RT-Thread env 工具,用于圖形化進行配置,然后還有一個RT-Thread本身,也就是MCU用的作業系統
這里還有一個RT-Thread Nano,是經過剪裁后最小的RT-Thread
對于這個RT-Thread本體,具有兩個版本,一個是LTS一個是經常更新的最新版,如果不想經常變更還是選LTS,免得兼容性問題,

Env和Studio的下載地址看這個頁面就可以
下載 - RT-Thread物聯網作業系統

安裝部分省略,很簡單,就是解壓會有大量零散檔案,推薦用SSD,

官方說支持VSCode但是實際上這個插件壓根沒做好,甚至更奇葩的是它不能新建工程,

ENV這一個工具解壓出來是這樣子,有用戶手冊可以看,

然后因為是比較落伍的編程代碼所以不支持UNICODE因此不能使用中文路徑

3.RT-Thread Studio的使用
3.1 新建工程
打開后需要注冊,注冊登錄就可以新建專案

這里我使用的是中科藍訊AB32VG1這么一個RISC-V開發板,主頻120Mhz,不如ESP32,芯片樣品單售價4.2元,開發板50包郵,板載Wifi,SD卡槽,FM,RGB LED,USB Host等等,

新建工程有兩種,一種是基于芯片一種是基于開發板,選擇第二種
然后就是聯網查找開發板的程序,可以看到支持的還是有一些的,甚至包括樹莓派那款50元雙核的板子

這里我選擇一個最新版本的安裝

然后跳出來提示

往上看一下,雖然其他幾個RT-Thread都裝了但這里這個沒有安裝,手動點選并下載

然后就可以正常的選擇了,

3.2.程式實體和快速上手
首先看一下這邊RT-Thread的陳述句,新建后自帶的程式
#include <rtthread.h>
#include "board.h"
int main(void)
{
uint8_t pin = rt_pin_get("PE.1");
rt_pin_mode(pin, PIN_MODE_OUTPUT);
rt_kprintf("Hello, world\n");
while (1)
{
rt_pin_write(pin, PIN_LOW);
rt_thread_mdelay(500);
rt_pin_write(pin, PIN_HIGH);
rt_thread_mdelay(500);
}
}
看得出來獲取引腳的方式還挺特別的,用的是rt_pin_get這個函式,設定引腳模式是rt_pin_mode,我尋思直接抄一份Arduino IDE的不就好了,
后面的rt_thread_mdelay和rt_pin_write味兒更濃了,作為一個天天用Arduino IDE偷懶的表示這實在是過于熟悉,當然這是一個好處,

查詢API的方式是用自帶的RT-Thread檔案,這一點方便性上面我認為超過大多數,特別是那些TI,Keil一類,因為眾所周知嵌入式的東西,API檔案亂是非常正常的,

RT-Thread在商業產品上面的使用可以不用開放源代碼,協議如果是GPL的需要,后面換用的Apache不用,

難怪之前遇到工程師吹這個好用,看來確實好用,離線檔案就是方便而且查詢很快
回來說如何編譯,這里要找到構建這個錘子按鈕,按下后就可以了

然后這時候我遇到了出錯的問題,riscv64-unknown-elf-gcc: not found

查了一下就是riscv64-unknown-elf-gcc這個檔案居然沒有,看了一下目錄,確實沒有這個編譯器

然后,為了搞定這個編譯器我卡了半個小時,因為RISC-V太新了,死活找不到,然后,就只能自己編譯一個出來了,
4.如何解決riscv64-unknown-elf-gcc: not found 問題
先是下載整個源代碼riscv-gcc-riscv-gcc-9.2.0,下載的地址GitHub - riscv-collab/riscv-gnu-toolchain: GNU toolchain for RISC-V, including GCC
然后因為我是在Windows下,所以要使用這一個MinGW64,切換到下載后解壓的編譯目錄

之后輸入這個命令,功能是生成Makefile,這里提示出錯,大意就是需要GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.這三個
./configure --prefix=/opt/riscv64 --with-arch=rv64imc --with-abi=xxx
這下還要先行解決這三個檔案缺失問題,我們同樣還是在MinGW中操作

如你有小飛機一類,先配置一下代理,免得下載速度像是沒會員的百度網盤
export http_proxy=http://你的代理地址:代理埠號

需要下載三個檔案
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
剩余部分直接參考這位兄弟的文章,原文地址
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. - 學知無涯 - 博客園
但是!實際上并不需要這么麻煩,因為在SDK管理器這里就可以下載,我在看了第二遍檔案時候發現了
SDK管理器在這里

點擊并且安裝后,應該就可以正常的編譯

然后如果你用的不是STM32類的MCU,會需要這樣一個下載器,下載器選擇的是專案檔案夾下的Debug檔案夾,檔案名是dcf后綴檔案,選擇后通過串口下載

最終效果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325830.html
標籤:其他
上一篇:M7-ASEMI二極管M7
