RTThread的一大特色就是有豐富免費的組件可以用,但是對于我這個初學者來說很難習慣它必須使用它的模板完成任務,而且在stm32也已經放棄了對標準庫的支持,這讓我這個一直使用標準庫的菜鳥感到很是頭大。但初學,還就得依葫蘆畫瓢,待練習的成熟了,再自己開發。本筆記參考參考的教程為bsp制作
第一步:是復制工程模板這 如果感覺這個比較慢可以 將這里面的倉庫導入到gitee中,這樣就很快了。復制的時候是要將整個工程都復制的。如圖所示
標紅框框的這幾個是比較重要的,主要修改的文件夾是bsp文件夾,在bsp(板級支持包)中RT-Thread已經給我么做了好多的例程,但是有時候需要自己建立一個屬于自己的板級支持包,所以過程還是要掌握的。我使用的開發板為野火stm32f429挑戰者v1。
第二步,在文件夾bsp->stm32->libraries下的templates文件夾中復制相關芯片的工程模板到stm32文件夾下,我使用的是STM32F429所以我就使用F4xx的模板。并且我將這個文件改名為stm32f429.如圖所示
第三步就是修改工程模板了,先看一下stm32f429下的目錄結構。
然后需要創建一個基于目標芯片的 CubeMX 工程。默認的 CubeMX 工程在 CubeMX_Config 文件夾中,雙擊打開 CubeMX_Config.ioc
工程,如下圖所示:
打開這個文件,修改成自己的芯片。
接下來使能RCC和串口,時鐘如圖所示,串口保持默認設置就可以了。
之后配置時鐘樹,如圖
設置好路徑之后,點擊生成就可以了。
然后就是修改相關文件
在 board.c 文件中存放了函數 SystemClock_Config()
,該函數負責初始化系統時鐘。當使用 CubeMX 工具對系統時鐘重新配置的時候,需要更新這個函數。
該函數由 CubeMX 工具生成,默認存放在board/CubeMX_Config/Src/main.c
文件中。但是該文件并沒有被包含到我們的工程中,因此需要將這個函數從 main.c 中拷貝到 board.c 文件中。在整個 BSP 的制作過程中,這個函數是唯一要要拷貝的函數,該函數內容如下所示:
在 board.h 文件中配置了 FLASH 和 RAM 的相關參數,這個文件中需要修改的是 STM32_FLASH_SIZE
和 STM32_SRAM_SIZE
這兩個宏控制的參數。本次制作的 BSP 所用的 STM32F429IGTx芯片的 flash 大小為 1M,ram 的大小為 256k,但如果ram的大小為256k的話系統是不能跑起來的,估計有部分是芯片用的吧,所以改為192,因此對該文件作出如下的修改:
修改 board/Kconfig
文件的內容
然后修改board/linker_scripts中的內容,我使用的是MDK就修改link.sct文件
然后修改構建腳本board/SConscript,如圖
最后修改工程模板。
修改芯片和下載方式
然后保存關閉就行了
第四步。構建工程。
使用env工具
在 env 界面輸入命令 menuconfig 對工程進行配置,并生成新的 rtconfig.h 文件。如下圖所示:
最后生成mdk5工程
之后就是打開生成的工程編譯下載
運行結果
-
RCC
+關注
關注
0文章
93瀏覽量
26900 -
時鐘樹
+關注
關注
0文章
53瀏覽量
10732 -
SRAM芯片
+關注
關注
0文章
65瀏覽量
12052 -
STM32F429
+關注
關注
0文章
40瀏覽量
10648 -
RTThread
+關注
關注
8文章
132瀏覽量
40811
發布評論請先 登錄
相關推薦
評論