RTThread的一大特色就是有豐富免費的組件可以用,但是對于我這個初學(xué)者來說很難習(xí)慣它必須使用它的模板完成任務(wù),而且在stm32也已經(jīng)放棄了對標(biāo)準(zhǔn)庫的支持,這讓我這個一直使用標(biāo)準(zhǔn)庫的菜鳥感到很是頭大。但初學(xué),還就得依葫蘆畫瓢,待練習(xí)的成熟了,再自己開發(fā)。本筆記參考參考的教程為bsp制作
第一步:是復(fù)制工程模板這 如果感覺這個比較慢可以 將這里面的倉庫導(dǎo)入到gitee中,這樣就很快了。復(fù)制的時候是要將整個工程都復(fù)制的。如圖所示

標(biāo)紅框框的這幾個是比較重要的,主要修改的文件夾是bsp文件夾,在bsp(板級支持包)中RT-Thread已經(jīng)給我么做了好多的例程,但是有時候需要自己建立一個屬于自己的板級支持包,所以過程還是要掌握的。我使用的開發(fā)板為野火stm32f429挑戰(zhàn)者v1。
第二步,在文件夾bsp->stm32->libraries下的templates文件夾中復(fù)制相關(guān)芯片的工程模板到stm32文件夾下,我使用的是STM32F429所以我就使用F4xx的模板。并且我將這個文件改名為stm32f429.如圖所示

第三步就是修改工程模板了,先看一下stm32f429下的目錄結(jié)構(gòu)。

然后需要創(chuàng)建一個基于目標(biāo)芯片的 CubeMX 工程。默認(rèn)的 CubeMX 工程在 CubeMX_Config 文件夾中,雙擊打開 CubeMX_Config.ioc 工程,如下圖所示:

打開這個文件,修改成自己的芯片。

接下來使能RCC和串口,時鐘如圖所示,串口保持默認(rèn)設(shè)置就可以了。

之后配置時鐘樹,如圖

設(shè)置好路徑之后,點擊生成就可以了。

然后就是修改相關(guān)文件
在 board.c 文件中存放了函數(shù) SystemClock_Config() ,該函數(shù)負(fù)責(zé)初始化系統(tǒng)時鐘。當(dāng)使用 CubeMX 工具對系統(tǒng)時鐘重新配置的時候,需要更新這個函數(shù)。
該函數(shù)由 CubeMX 工具生成,默認(rèn)存放在board/CubeMX_Config/Src/main.c 文件中。但是該文件并沒有被包含到我們的工程中,因此需要將這個函數(shù)從 main.c 中拷貝到 board.c 文件中。在整個 BSP 的制作過程中,這個函數(shù)是唯一要要拷貝的函數(shù),該函數(shù)內(nèi)容如下所示:

在 board.h 文件中配置了 FLASH 和 RAM 的相關(guān)參數(shù),這個文件中需要修改的是 STM32_FLASH_SIZE 和 STM32_SRAM_SIZE 這兩個宏控制的參數(shù)。本次制作的 BSP 所用的 STM32F429IGTx芯片的 flash 大小為 1M,ram 的大小為 256k,但如果ram的大小為256k的話系統(tǒng)是不能跑起來的,估計有部分是芯片用的吧,所以改為192,因此對該文件作出如下的修改:

修改 board/Kconfig 文件的內(nèi)容

然后修改board/linker_scripts中的內(nèi)容,我使用的是MDK就修改link.sct文件

然后修改構(gòu)建腳本board/SConscript,如圖

最后修改工程模板。

修改芯片和下載方式


然后保存關(guān)閉就行了
第四步。構(gòu)建工程。
使用env工具
在 env 界面輸入命令 menuconfig 對工程進(jìn)行配置,并生成新的 rtconfig.h 文件。如下圖所示:


最后生成mdk5工程


之后就是打開生成的工程編譯下載
運行結(jié)果

-
RCC
+關(guān)注
關(guān)注
0文章
96瀏覽量
28509 -
時鐘樹
+關(guān)注
關(guān)注
0文章
58瀏覽量
11253 -
SRAM芯片
+關(guān)注
關(guān)注
0文章
66瀏覽量
12790 -
STM32F429
+關(guān)注
關(guān)注
0文章
40瀏覽量
11988 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
42720
發(fā)布評論請先 登錄
(完整版)vxworks嵌入式操作系統(tǒng)
華大單片機(jī)移植RTThread操作系統(tǒng)
SD卡協(xié)議學(xué)習(xí)點滴(完整版本)
RTThread完整版學(xué)習(xí)之操作系統(tǒng)移植
評論