1. 新建工程
1.1 創建基于芯片的工程
1.1.1 選擇創建的rtt版本
前期準備:從官網下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
rt-thread有標準版和nano版兩種版本,標準版支持豐富的軟件包和各種組件,而nano版本僅支持msh shell功能,這次就創建標準版本的rtt工程,以便后面更方便的使用軟件包,選擇rtt版本如圖所示:
也可以使用圖標來新建,如圖所示:
1.1.2. 配置工程基本屬性
在上一步點擊“RT-Thread項目”后,就進入了工程基本屬性的配置界面,如圖所示:
圖中各項的作用描述如下表:
序號 | 名稱 | 描述 |
---|---|---|
① | 工程名 | 指定新建工程的名稱。如果不想讓此工程保存在默認的工作空間內,可以將此欄下面的使用缺省位置去勾選然后指定工程的保存路徑 |
② | 工程模板 | RT-Thread Studio支持兩種模板,一種是基于芯片,另一種是基于開發板,基于芯片目前只有ST公司的處理器支持的很好;基于開發板則有很多廠家提供他們的rtt bsp sdk |
③ | RT-Thread內核版本 | 更新了RT-Thread Studio之后,選擇最新版本即可 |
④ | 廠商 | RT-Thread Studio支持的芯片廠商,目前ST處理器支持的最好 |
⑤ | 芯片系列 | ST處理器有F1/F3/F4/F7/H7系列的MCU,根據實際情況選擇 |
⑥ | 芯片子系列 | 當選擇號了芯片系列之后,芯片子系列就會列出該系列芯片的子系列,比如STM32F103系列 |
⑦ | 芯片型號 | 根據芯片系列和芯片子系列就圈定了芯片型號的范圍,我們在此范圍內找到我們要開發的目標芯片,比如STM32F103ZE |
⑧ | 控制臺串口 | 就是msh shell功能使用的串口,這里指向我們板卡上用于輸出調試信息的或者其它信息的串口,百問網的調試串口使用的是USART1,引腳是PA9和PA10 |
⑨ | 調試器 | 調試芯片的工具,通常由j-link/st-link/daplink等,根據自己手里面的工具來選擇 |
⑩ | 調試接口 | 有JTAG接口和SWD接口,根據板卡的實際設計來選擇 |
根據這些信息和我們板卡的實際情況,我的配置如下圖所示:
然后點擊完成,等待工程初創成功:
1.1.3. 初創工程目錄結構
工程初創成功后,得到如下圖的工程,其目錄結構如圖所示:
每項對應的功能描述如下表:
序號 | 名稱 | 描述 |
---|---|---|
1 | RT-Thread Settings | RTT Studio內置配置工具,可以配置內核、組件、軟件包,并將配置保存生成到工程中 |
2 | CubeMX Settings | RTT Stduio內置STM32CubeMX工具,用以配置ST處理器的外設 |
3 | Includes | 其中展示了此工程包含使用的所有頭文件 |
4 | applications | 其中包含了用戶開發的應用層的源文件,默認包含了main.c,里面實現了main函數 |
5 | drivers | 里面包含了基于該芯片的外設驅動源文件和頭文件,不一定所有的外設都支持,還有待持續維護開發。對于不支持的外設還是要用戶自己去實現驅動函數 |
6 | libraries | 基于該芯片的庫文件,一般是由廠商提供,RTT Studio將其整理打包放到了工程目錄結構中。在ST芯片的工程中有CMSIS和STM32XXX_HAL_Driver,前者是存放CMSIS標準的頭文件和庫文件,后者是放STM32處理器的HAL庫文件 |
7 | linkscripts | 存放該芯片編譯時的鏈接文件 |
8 | rt-thread | rtt的內核文件和組件、軟件包源文件,使用RT-Thread Settings配置的內核、組件和軟件包對應的源代碼會在這一級中生效 |
9 | rtconfig.h | rtt的配置文件,用以表明會用到哪些內核機制、組件和軟件包,使用RT-Thread Settings配置后會覆蓋之前的改動,所以不建議在rtt studio中手動修改此文件 |
1.1.4. 修改時鐘配置
在前面初創工程的時候有提示說:默認的時鐘使用的是HSI來配置系統時鐘,如果要使用別的時鐘源來配置系統時鐘就要去修改drv_clk.c,我們的開發板有使用精度更高的HSE,所以我們先去修改時鐘配置。
重點要關注的是這幾行代碼:
// 原本的代碼使用的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;
如果不會自己配置系統時鐘,可以使用STM32CubeMX生成一個自己熟悉的工程,復制時鐘相關的代碼過來。 好多硬件相關的配置,使用工具STM32CubeMX都幫我們做好了,直接用就行,沒必要重新造輪子。
對著某些情況的資源,我們可以選擇排除構建。
將某項排除構建后,該項就會從當前的工程目錄被移除,但是還是存在工程文件夾中的,沒有被刪除掉。 如果想要恢復,可以去菜單欄打開“導航”,選擇“打開資源”,如圖所示:
然后點擊左下角的“顯示位置”,選擇“C/C++項目”:
這樣,在“項目資源管理器”的邊上就有一個“C/C++項目”,如圖所示:
可以看到外面之前選擇排除構建的cubemx就出現了,圖標上有個/,表示該項不會被構建,要恢復就鼠標右鍵此項,將此項選擇加入構建,如圖所示:
恢復之后,/號就消失,重新構建工程,查看是否有配置錯誤。 構建成功,那么一個工程就新建好了,可以開始后面對具體外設、內核、組件和軟件包的配置了。
1.1.5. 配置調試下載器
在調試或者下載程序之前,需要先去配置調試下載器,如圖所示:
點擊圖中紅圈中的下拉圖標進行配置,根據自己實際情況選擇即可。
1.2 創建基于開發板的工程
基于開發板的和基于芯片的思路是一樣的,只是基于開發板的會有更多廠商的芯片可以選擇,不過他們對于驅動的支持可能沒有ST那樣好,很多驅動需要自己去完成。
2. 配置內核
雙擊RT-Thread Settings進入配置界面:
點擊紅圈中的左拉箭頭,進入細節配置:
在這里可以配置內核的參數,比如Tick頻率、堆棧、線程通信、內存管理等等,按需配置,和FreeRTOS中修改FreeRTOSConfig.h類似的功能。
3. 下載驗證
經過上面一頓操作后,接下來就是構建工程,讓現象呈現出來。 編譯工程
打開調試串口,觀察現象
可以看到rt-thread成功跑起來,可以在終端中使用各種命令,比如:help,ps等命令,方便開發者使用。
總之:rh-thread的官方工具還是挺好用,點點鼠標就能把相關的底層配置好,讓用戶專注自己的業務,可以加快讓產品落地,不過想要做優化等工作,就需要研究rt-thread的源碼了,只有對其源碼理解透,做出來的產品才能牛x,更耐用。
-
芯片
+關注
關注
456文章
51180瀏覽量
427268 -
mcu
+關注
關注
146文章
17319瀏覽量
352650 -
Studio
+關注
關注
2文章
190瀏覽量
28833 -
M處理器
+關注
關注
0文章
2瀏覽量
5813
發布評論請先 登錄
相關推薦
評論