(RT-Thread學習筆記1)基於 CubeMX 移植 RT-Thread Nano

uNique丶青淺發表於2020-10-10

0.前言

最近開始學習RT-Thread作業系統相關的知識了。做個記錄,方便自己的同時也方便大家。

本文主要記錄了基於 CubeMX5.6.0 移植 RT-Thread Nano 的完整流程。

由於是初學,難免出現一些錯誤,如有發現,還希望大家不吝賜教鴨~

1.基於CubeMX下載 RT-Thread Pack

欲善其事先利其器,要移植RT-Thread Nano,首先要在 CubeMX中下載並安裝 RT-Thread Nano pack ,在 CubeMX 中新增以下網址:

https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc

操作過程如下圖所示:
下載 RT-Thread Pack
pack安裝成功

2.CubeMX 工程建立與設定

這裡我基於野火指南者開發板點燈為demo建立一個工程,其中需要注意的是選擇時鐘源不能為Systick,否則生成程式碼會有警告,keil中編譯也會報1個錯的哦。還有就是將PB0作為輸出,接綠燈。喜歡的話也可以新增一個標籤,方便寫程式碼。

在這裡插入圖片描述
時鐘設定不用管,因為 RT-Thread 的 board.c 檔案中會配置並初始化時鐘。接下來就是去除NVIC某些中斷的勾選,具體操作步驟如下圖所示。最後就是設定工程名,儲存路徑等,此處就不贅述了。生成程式碼搞定!
管理中斷

3.Keil 的設定

在keil中,不用做過多的設定,主要是編譯過程中有一個警告。意思是定義了一個 obj 的內容,但沒有使用。完美主義者可以考慮用 F4 定位警告,然後將相關內容註釋掉。內容在 object.c 中具體操作如下圖所示。

消除警告
最後就是在 main.c 檔案中新增 RT-Thread 的標頭檔案(#include “rtthread.h”)了,在 while 迴圈中加入點燈程式碼執行即可,具體操作如下圖所示。
作業系統點燈程式碼
最後要注意的是,延時函式最好使用 rtt 的API,這樣可以保證系統正常的任務排程。

4.實驗現象

雖然沒有放圖,不過經過測試,系統是可以正常地跑起來滴。現象很明顯:上方那一抹輕柔的綠以 1Hz的頻率歡快的舞動著…

相關文章