一、準備工具
1、PC機,本教程用的windows 7 ,64位操作系統。2、USB數據線一根,一端接PC USB接口,另一端接開發板micro USB接口。3、jlink、st-link或其它仿真器一臺,不是必須,為方便調試,最好有,這里用st-link轉換的jlink。4、ufun開發板一塊。
二、安裝工具軟件
1、安裝MDK4、MDK5、IAR其中一個或全部IDE
安裝方法網上搜索。
2、安裝STM32CubeMX
安裝方法網上搜索。
ufun開發板的MCU是STM32F103RCT6,先用STM32CubeMX下載STM32CubeF1 Firmware Package,啟動STM32CubeMX,Help -> Manage embedded software packages
打開嵌入式包管理器,選擇STM32Cube MCU Packages選項卡,點開STM32F1系列前的黑三角,選中最新的版本包,單擊Install Now,開始下載包。
等待下載完成,自動解壓
完成上述過程,單擊Close
3、st-link轉換的jlink
如果你有jlink,直接跳過此步。這樣折騰是為了后期使用SEGGER的SystemView,轉換方法SEGGER官網有。到下面鏈接找:Converting ST-LINK On-Board Into a J-Linkhttps://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/
4、安裝jlink驅動
安裝一路next即可。驅動可以去官網下載。
5、安裝env
到RT-Thread官網下載安裝
6、安裝CH340T USB轉串口驅動
驅動和安裝方法網上搜索。
三、制作stm32f103-yf-ufun bsp
本教程參考RT-Thread官網文檔《STM32 系列 BSP 制作教程》
1、到RT-Thread官網,找到github代碼倉庫地址,克隆一份master分支到本地,本地自動創建名為rt-thread的文件夾。
2、復制通用模板本次ufun開發板MCU型號為STM32F103RCT6,用的 F1 系列 BSP 模板。到路徑rt-threadspstm32libraries emplates中,復制一份文件夾stm32f10x
粘貼到路徑rt-threadspstm32
并重命名為stm32f103-yf-ufun,由于我這里已有與一份stm32f103-yf-ufun,這里重命名為stm32f103-yf-ufun-2為例說明。
3、使用 CubeMX 工具配置工程進入路徑rt-threadspstm32stm32f103-yf-ufun-2oardCubeMX_Config雙擊CubeMX_Config.ioc,用STM32CubeMX打開模板STM32CubeMX工程
由于模板工程用STM32CubeMX版本5.0.0創建,我安裝的STM32CubeMX版本5.2.0,單擊Migrate。
單擊原芯片型號,修改為目標板ufun MCU型號
等出現如下界面
紅框中輸入目標芯片STM32F103RC,并雙擊對應的芯片STM32F103RCTx
按下圖步驟配置外部晶振
按下圖步驟配置串行線調試
按下圖步驟配置USART1異步模式,與ufun開發板上的USB轉串口對接的是USART1
按下圖步驟配置時鐘,這里把頻率配置最大
按下面步驟工程名稱,和生產目標代碼的位置,第3步選擇路徑到文件夾board,下面的工具鏈一欄自動填入,無需手工選擇
單擊右上部的GENERATE CODE,生成代碼。提示目標工程已存在,是否覆蓋,單擊Yes覆蓋舊文件。
目標路徑生成的工程如下圖,紅框的兩個文件夾不需要,直接刪除
打開路徑rt-threadspstm32stm32f103-yf-ufun-2oardCubeMX_ConfigSrc下的文件main.c,把其中的函數SystemClock_Config,拷貝到路徑rt-threadspstm32stm32f103-yf-ufun-2oard下的文件board.c中,替換board.c中的函數SystemClock_Config。
打開路徑rt-threadspstm32stm32f103-yf-ufun-2oard下的文件board.h,修改 STM32_FLASH_SIZE 和 STM32_SRAM_SIZE 這兩個宏控制的參數。本次制作的bsp所用的STM32F103RCTx芯片的flash大小為256k,ram的大小為48k,因此對該文件作出如下的修改:
4、修改 BSP 中的 Kconfig 文件 打開路徑rt-threadspstm32stm32f103-yf-ufun-2oard中的文件Kconfig,把芯片型號SOC_STM32F103RB改為SOC_STM32F103RC,片上外設配置有GPIO和UART1即可。
5、修改構建工程相關文件
打開路徑rt-threadspstm32stm32f103-yf-ufun-2oardlinker_scripts中的3個鏈接腳本文件,修改其中的flash和ram大小與目標芯片一致
打開路徑rt-threadspstm32stm32f103-yf-ufun-2oard中文件SConscript,修改啟動文件和目標芯片,這里參考STM32CubeMX生成的工程代碼,其中使用的startup_stm32f103xe.s,確保startup_stm32f103xe.s在以下三個路徑都有,如果沒有,可以到STM32CubeMX生成的工程代碼中拷貝。rt-threadspstm32librariesSTM32F1xx_HALCMSISDeviceSTSTM32F1xxSourceTemplatesarmrt-threadspstm32librariesSTM32F1xx_HALCMSISDeviceSTSTM32F1xxSourceTemplatesgccrt-threadspstm32librariesSTM32F1xx_HALCMSISDeviceSTSTM32F1xxSourceTemplatesiar
預編譯宏定義是STM32F103xE
打開路徑rt-threadspstm32stm32f103-yf-ufun-2中的工程模板,MDK5的工程模板是template.uvprojx,MDK5的工程模板是template.uvproj,IAR的工程模板是template.eww,分別配置三個模板修改正確的目標芯片和下載程序用的仿真器,并配置仿真器目標芯片,以下已MDK5的工程模板配置截圖展示。
6、重新生成工程在路徑rt-threadspstm32stm32f103-yf-ufun-2中,打開env
輸入menuconfig,回車
確保啟用GPIO,UART1
使用env工具輸入命令scons --target=mdk5重新生成工程
到這一步為止,新的bsp就可以使用了。接下來我們可以分別使用命令scons --target=mdk4和scons --target=iar,來更新mdk4和iar的工程,使得該BSP變成一個完整的
7、測試生成的工程打開MDK5目標工程,修改ufun開發板上LED3閃爍控制引腳為PA3,如下圖
工程編譯成功
把ufun開發板用之前準備的USB數據線連接到PC,仿真器與ufun開發板調試口連接
MDK5中下載flash到目標板測試
按下ufun的復位鍵,LED3閃爍正常
在設備管理器中找到ufun開發板上USB轉串口對應的串口號
用串口工具打開,配置串口參數如下圖
打開串口,回車,出現tshell提示符
按下ufun的復位鍵,打印RT-Thread啟動信息
按下tab鍵,輸出可用命令
再分別對MDK4,IAR的目標工程進行測試成功。
輸入命令scons,用env自帶的gcc編譯器編譯成功。
到此,新的ufun開發板bsp就制作完成了。用文件對比工具,對比新的bsp與已有bsp中的文件,清除不必要的文件,確保bsp干凈整潔。依照其它bsp,完善readme文件,這樣就可以提交到GitHub的bsp了。
-
物聯網
+關注
關注
2909文章
44635瀏覽量
373359 -
操作系統
+關注
關注
37文章
6825瀏覽量
123331 -
物聯網操作系統
+關注
關注
3文章
114瀏覽量
13363
原文標題:【新手教學】手把手教你將物聯網操作系統RT-Thread 移植到ufun開發板
文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論