在歷史版本里邊隨便選取一個(gè)
會(huì)進(jìn)入百度云盤的下載地址,里邊有全部版本的源碼。這里下載v2.1.0的穩(wěn)定版本。
解壓后的源碼目錄結(jié)構(gòu):
基本內(nèi)核的移植只需要關(guān)心目錄-bsp、include、libcpu、src。
二、開始移植
1、文件拷貝
-- F:RT-Thread源碼 t-thread-2.1.0spstm32f10x下的rtconfig.h。
--F:RT-Thread源碼 t-thread-2.1.0spstm32f10xapplications下的application.c和startup.c。
--F:RT-Thread源碼 t-thread-2.1.0spstm32f10xdrivers下的board.c和board.h。
--F:RT-Thread源碼 t-thread-2.1.0include下的所有頭文件。
-- F:RT-Thread源碼 t-thread-2.1.0libcpuarmcortex-m3下的cpuport.c和對應(yīng)IDE的匯編文件。
--F:RT-Thread源碼 t-thread-2.1.0src下的所有文件。此目錄是RT-thread的內(nèi)核代碼。
STM32的啟動(dòng)文件等自己添加。也可以直接復(fù)制源碼中的文件。
2、工程目錄結(jié)構(gòu)
RT-Thread存放RTOS源碼,也就是用戶無需修改的文件。
applications存放用戶修改文件和配置文件。
3、修改board.c文件
主要作用:初始化外設(shè)、硬件等。
源碼中提供的函數(shù):
NVIC_Configuration(void)里,加上中斷分組的配置。
EXT_SRAM_Configuration(void)是配置外部運(yùn)存的代碼,如果用不到,可以不管或者刪除。關(guān)于48行的宏STM32_EXT_SRAM可在rtconfig.h里邊找到。
這個(gè)是系統(tǒng)心跳中斷服務(wù)函數(shù)。默認(rèn)使用內(nèi)核自帶的SystemTick計(jì)數(shù)器。當(dāng)然,也可以使用定時(shí)器來產(chǎn)生系統(tǒng)心跳。只要能夠周期性調(diào)用下圖165行、167行、170行的代碼即可。
rt_hw_board_init(void)函數(shù)是單片機(jī)上電調(diào)用的一個(gè)函數(shù),主要功能就是初始化外設(shè),串口、定時(shí)器、GPIO之類的。
4、修改application.c文件
主要作用:用戶任務(wù)線程初始化、執(zhí)行。
從43行開始,把下面的內(nèi)容全部刪除。然后自己重寫。
主要提供一個(gè)int rt_application_init(void)的初始化函數(shù)即可。然后其他的全是任務(wù)線程。
5、提供串口打印函數(shù)
RT-Thread使用rt_hw_console_output函數(shù)來打印一些信息,這個(gè)只要在串口驅(qū)動(dòng)文件里邊寫好即可。不需要extern。
6、修改配置文件rtconfig.h
注釋掉78行即可。
移植完成。
三、創(chuàng)建應(yīng)用
-
移植
+關(guān)注
關(guān)注
1文章
383瀏覽量
28192 -
STM32F10x
+關(guān)注
關(guān)注
1文章
81瀏覽量
20727 -
源碼
+關(guān)注
關(guān)注
8文章
652瀏覽量
29450 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40383
原文標(biāo)題:RT-thread源碼移植到STM32F10x和STM32F4xx
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
【分享經(jīng)驗(yàn)】手把手教你把RT-Thread移植到STM32F1
如何移植RT-thread官方的系統(tǒng)源碼到STM32F10x特定的MCU平臺(tái)中呢
如何移植RT-thread官方的系統(tǒng)源碼到STM32F10x特定的MCU平臺(tái)中?
基于正點(diǎn)原子精英版stm32f103zet6進(jìn)行rt_thread(3.0.3)的移植
![基于正點(diǎn)原子精英版<b class='flag-5'>stm32f</b>103zet6進(jìn)行<b class='flag-5'>rt_thread</b>(3.0.3)的<b class='flag-5'>移植</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN4073 使用STM32F2xx和STM32F4xx微控制器時(shí)如何提高ADC精度
![AN4073 使用<b class='flag-5'>STM32F2xx</b>和<b class='flag-5'>STM32F4xx</b>微控制器時(shí)如何提高ADC精度](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
UM1021_STM32F105xx、STM32F107xx、STM32F2xx 和 STM32F4xx USB On-The-Go 主機(jī)和設(shè)備庫
![UM1021_<b class='flag-5'>STM32F105xx</b>、<b class='flag-5'>STM32F107xx</b>、<b class='flag-5'>STM32F2xx</b> 和 <b class='flag-5'>STM32F4xx</b> USB On-The-Go 主機(jī)和設(shè)備庫](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
UM1029_STM32F10xx、STM32F2xx、STM32F4xx 和 STM32L1xx I2C 通信外設(shè)應(yīng)用程序庫 (CPAL)
![UM1029_<b class='flag-5'>STM32F10xx</b>、<b class='flag-5'>STM32F2xx</b>、<b class='flag-5'>STM32F4xx</b> 和 <b class='flag-5'>STM32L1xx</b> I2C 通信外設(shè)應(yīng)用程序庫 (CPAL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系
![【GD32 MCU <b class='flag-5'>移植</b>教程】8、從 <b class='flag-5'>STM32F4xx</b> 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F4xx</b> 系](https://file1.elecfans.com/web2/M00/06/61/wKgaombaXZ6AB4PtAABI6uZ03C4508.png)
【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列
![【GD32 MCU <b class='flag-5'>移植</b>教程】9、從 <b class='flag-5'>STM32F10x</b> 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F30x</b> 系列](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHYWASdt6AAA4EF8E1O4442.png)
評論