1. 新建工程
1.1 創(chuàng)建基于芯片的工程
1.1.1 選擇創(chuàng)建的rtt版本
前期準(zhǔn)備:從官網(wǎng)下載 RT-Thread Studio,弄個(gè)賬號(hào)登陸,開(kāi)啟rt-thread學(xué)習(xí)之旅。
rt-thread有標(biāo)準(zhǔn)版和nano版兩種版本,標(biāo)準(zhǔn)版支持豐富的軟件包和各種組件,而nano版本僅支持msh shell功能,這次就創(chuàng)建標(biāo)準(zhǔn)版本的rtt工程,以便后面更方便的使用軟件包,選擇rtt版本如圖所示:

也可以使用圖標(biāo)來(lái)新建,如圖所示:

1.1.2. 配置工程基本屬性
在上一步點(diǎn)擊“RT-Thread項(xiàng)目”后,就進(jìn)入了工程基本屬性的配置界面,如圖所示:

圖中各項(xiàng)的作用描述如下表:
| 序號(hào) | 名稱(chēng) | 描述 |
|---|---|---|
| ① | 工程名 | 指定新建工程的名稱(chēng)。如果不想讓此工程保存在默認(rèn)的工作空間內(nèi),可以將此欄下面的使用缺省位置去勾選然后指定工程的保存路徑 |
| ② | 工程模板 | RT-Thread Studio支持兩種模板,一種是基于芯片,另一種是基于開(kāi)發(fā)板,基于芯片目前只有ST公司的處理器支持的很好;基于開(kāi)發(fā)板則有很多廠家提供他們的rtt bsp sdk |
| ③ | RT-Thread內(nèi)核版本 | 更新了RT-Thread Studio之后,選擇最新版本即可 |
| ④ | 廠商 | RT-Thread Studio支持的芯片廠商,目前ST處理器支持的最好 |
| ⑤ | 芯片系列 | ST處理器有F1/F3/F4/F7/H7系列的MCU,根據(jù)實(shí)際情況選擇 |
| ⑥ | 芯片子系列 | 當(dāng)選擇號(hào)了芯片系列之后,芯片子系列就會(huì)列出該系列芯片的子系列,比如STM32F103系列 |
| ⑦ | 芯片型號(hào) | 根據(jù)芯片系列和芯片子系列就圈定了芯片型號(hào)的范圍,我們?cè)诖朔秶鷥?nèi)找到我們要開(kāi)發(fā)的目標(biāo)芯片,比如STM32F103ZE |
| ⑧ | 控制臺(tái)串口 | 就是msh shell功能使用的串口,這里指向我們板卡上用于輸出調(diào)試信息的或者其它信息的串口,百問(wèn)網(wǎng)的調(diào)試串口使用的是USART1,引腳是PA9和PA10 |
| ⑨ | 調(diào)試器 | 調(diào)試芯片的工具,通常由j-link/st-link/daplink等,根據(jù)自己手里面的工具來(lái)選擇 |
| ⑩ | 調(diào)試接口 | 有JTAG接口和SWD接口,根據(jù)板卡的實(shí)際設(shè)計(jì)來(lái)選擇 |
根據(jù)這些信息和我們板卡的實(shí)際情況,我的配置如下圖所示:

然后點(diǎn)擊完成,等待工程初創(chuàng)成功:

1.1.3. 初創(chuàng)工程目錄結(jié)構(gòu)
工程初創(chuàng)成功后,得到如下圖的工程,其目錄結(jié)構(gòu)如圖所示:

每項(xiàng)對(duì)應(yīng)的功能描述如下表:
| 序號(hào) | 名稱(chēng) | 描述 |
|---|---|---|
| 1 | RT-Thread Settings | RTT Studio內(nèi)置配置工具,可以配置內(nèi)核、組件、軟件包,并將配置保存生成到工程中 |
| 2 | CubeMX Settings | RTT Stduio內(nèi)置STM32CubeMX工具,用以配置ST處理器的外設(shè) |
| 3 | Includes | 其中展示了此工程包含使用的所有頭文件 |
| 4 | applications | 其中包含了用戶(hù)開(kāi)發(fā)的應(yīng)用層的源文件,默認(rèn)包含了main.c,里面實(shí)現(xiàn)了main函數(shù) |
| 5 | drivers | 里面包含了基于該芯片的外設(shè)驅(qū)動(dòng)源文件和頭文件,不一定所有的外設(shè)都支持,還有待持續(xù)維護(hù)開(kāi)發(fā)。對(duì)于不支持的外設(shè)還是要用戶(hù)自己去實(shí)現(xiàn)驅(qū)動(dòng)函數(shù) |
| 6 | libraries | 基于該芯片的庫(kù)文件,一般是由廠商提供,RTT Studio將其整理打包放到了工程目錄結(jié)構(gòu)中。在ST芯片的工程中有CMSIS和STM32XXX_HAL_Driver,前者是存放CMSIS標(biāo)準(zhǔn)的頭文件和庫(kù)文件,后者是放STM32處理器的HAL庫(kù)文件 |
| 7 | linkscripts | 存放該芯片編譯時(shí)的鏈接文件 |
| 8 | rt-thread | rtt的內(nèi)核文件和組件、軟件包源文件,使用RT-Thread Settings配置的內(nèi)核、組件和軟件包對(duì)應(yīng)的源代碼會(huì)在這一級(jí)中生效 |
| 9 | rtconfig.h | rtt的配置文件,用以表明會(huì)用到哪些內(nèi)核機(jī)制、組件和軟件包,使用RT-Thread Settings配置后會(huì)覆蓋之前的改動(dòng),所以不建議在rtt studio中手動(dòng)修改此文件 |
1.1.4. 修改時(shí)鐘配置
在前面初創(chuàng)工程的時(shí)候有提示說(shuō):默認(rèn)的時(shí)鐘使用的是HSI來(lái)配置系統(tǒng)時(shí)鐘,如果要使用別的時(shí)鐘源來(lái)配置系統(tǒng)時(shí)鐘就要去修改drv_clk.c,我們的開(kāi)發(fā)板有使用精度更高的HSE,所以我們先去修改時(shí)鐘配置。
重點(diǎn)要關(guān)注的是這幾行代碼:
// 原本的代碼使用的HSI
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
...
...
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
// 修改成HSI
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
...
...
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
如果不會(huì)自己配置系統(tǒng)時(shí)鐘,可以使用STM32CubeMX生成一個(gè)自己熟悉的工程,復(fù)制時(shí)鐘相關(guān)的代碼過(guò)來(lái)。 好多硬件相關(guān)的配置,使用工具STM32CubeMX都幫我們做好了,直接用就行,沒(méi)必要重新造輪子。
對(duì)著某些情況的資源,我們可以選擇排除構(gòu)建。

將某項(xiàng)排除構(gòu)建后,該項(xiàng)就會(huì)從當(dāng)前的工程目錄被移除,但是還是存在工程文件夾中的,沒(méi)有被刪除掉。 如果想要恢復(fù),可以去菜單欄打開(kāi)“導(dǎo)航”,選擇“打開(kāi)資源”,如圖所示:

然后點(diǎn)擊左下角的“顯示位置”,選擇“C/C++項(xiàng)目”:

這樣,在“項(xiàng)目資源管理器”的邊上就有一個(gè)“C/C++項(xiàng)目”,如圖所示:

可以看到外面之前選擇排除構(gòu)建的cubemx就出現(xiàn)了,圖標(biāo)上有個(gè)/,表示該項(xiàng)不會(huì)被構(gòu)建,要恢復(fù)就鼠標(biāo)右鍵此項(xiàng),將此項(xiàng)選擇加入構(gòu)建,如圖所示:

恢復(fù)之后,/號(hào)就消失,重新構(gòu)建工程,查看是否有配置錯(cuò)誤。 構(gòu)建成功,那么一個(gè)工程就新建好了,可以開(kāi)始后面對(duì)具體外設(shè)、內(nèi)核、組件和軟件包的配置了。
1.1.5. 配置調(diào)試下載器
在調(diào)試或者下載程序之前,需要先去配置調(diào)試下載器,如圖所示:

點(diǎn)擊圖中紅圈中的下拉圖標(biāo)進(jìn)行配置,根據(jù)自己實(shí)際情況選擇即可。
1.2 創(chuàng)建基于開(kāi)發(fā)板的工程
基于開(kāi)發(fā)板的和基于芯片的思路是一樣的,只是基于開(kāi)發(fā)板的會(huì)有更多廠商的芯片可以選擇,不過(guò)他們對(duì)于驅(qū)動(dòng)的支持可能沒(méi)有ST那樣好,很多驅(qū)動(dòng)需要自己去完成。
2. 配置內(nèi)核
雙擊RT-Thread Settings進(jìn)入配置界面:

點(diǎn)擊紅圈中的左拉箭頭,進(jìn)入細(xì)節(jié)配置:

在這里可以配置內(nèi)核的參數(shù),比如Tick頻率、堆棧、線程通信、內(nèi)存管理等等,按需配置,和FreeRTOS中修改FreeRTOSConfig.h類(lèi)似的功能。
3. 下載驗(yàn)證
經(jīng)過(guò)上面一頓操作后,接下來(lái)就是構(gòu)建工程,讓現(xiàn)象呈現(xiàn)出來(lái)。 編譯工程

打開(kāi)調(diào)試串口,觀察現(xiàn)象


可以看到rt-thread成功跑起來(lái),可以在終端中使用各種命令,比如:help,ps等命令,方便開(kāi)發(fā)者使用。
總之:rh-thread的官方工具還是挺好用,點(diǎn)點(diǎn)鼠標(biāo)就能把相關(guān)的底層配置好,讓用戶(hù)專(zhuān)注自己的業(yè)務(wù),可以加快讓產(chǎn)品落地,不過(guò)想要做優(yōu)化等工作,就需要研究rt-thread的源碼了,只有對(duì)其源碼理解透,做出來(lái)的產(chǎn)品才能牛x,更耐用。
-
芯片
+關(guān)注
關(guān)注
463文章
54223瀏覽量
468059 -
mcu
+關(guān)注
關(guān)注
147文章
19035瀏覽量
401241 -
Studio
+關(guān)注
關(guān)注
2文章
226瀏覽量
30772 -
M處理器
+關(guān)注
關(guān)注
0文章
2瀏覽量
5872
發(fā)布評(píng)論請(qǐng)先 登錄
RT-Thread記錄(一、版本開(kāi)發(fā)環(huán)境及配合CubeMX)
RT-Thread記錄(二、RT-Thread內(nèi)核啟動(dòng)流程)
如何使用RT-Thread Studio來(lái)新建項(xiàng)目
RT-Thread Studio 主要亮點(diǎn)功能
RT-Thread STM32 配置系統(tǒng)時(shí)鐘(使用外部晶振)
RT-Thread Studio學(xué)習(xí) 驅(qū)動(dòng)攀藤PMS5003ST PM2.5傳感器
RT-Thread Studio驅(qū)動(dòng)SD卡
RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 理解defunct僵尸線程
RT-Thread學(xué)習(xí)筆記 RT-Thread的架構(gòu)概述
使用RT-Thread Studio進(jìn)行智能家居終端的設(shè)計(jì)
rt-studio潘多拉開(kāi)發(fā)板最新rt-thread不能運(yùn)行解決辦法
基于RT-Thread Studio學(xué)習(xí)
評(píng)論