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