战舰V3适配oneos系列01:bsp适配
戰(zhàn)艦V3適配oneos系列01:bsp適配
本系列以oneos2.3.0提供的STM32F103ZE模板為基礎(chǔ),將oneos在戰(zhàn)艦V3上運(yùn)行起來,并逐步適配相關(guān)外設(shè)
本系列計(jì)劃周更
本系列相關(guān)代碼將上傳gitee供測試體驗(yàn),倉庫:
https://gitee.com/dreamfly233/OneOS/tree/projects_OneOS-v2.3.0/
準(zhǔn)備項(xiàng)
- 獲取oneos2.3.0的代碼:https://gitee.com/cmcc-oneos/OneOS/tree/OneOS-V2.3.0/
- 安裝oneos cube:https://os.iot.10086.cn/v2/doc/detailPage/documentHtml?idss=157067959888781312&proId=156799478777782272
- 安裝stm32cubemx,推薦6.3.0
生成工程:
在oneos/project文件夾下執(zhí)行project.bat,
選擇如圖:
注意SUB MODEL選擇STM32F103ZE
按esc退出并保存后,將生成STM32F103ZE的工程,建議將生成的文件夾改名, 以開發(fā)板型號(hào)為名方便區(qū)分, 這里將生成的STM32F103ZE文件夾更名為stm32f103zet6-atk-warship_v3
打開stm32f103zet6-atk-warship_v3文件夾,可以看到熟悉的目錄結(jié)構(gòu):
在該目錄下打開oneos cube,進(jìn)入menuconfig
- 注意:BOOT項(xiàng)需要修改:將text section addr項(xiàng)修改為0x08000000,否則工程不能正常啟動(dòng);
- 若按默認(rèn)的boot偏移制作并燒錄了bootloader,則可忽略該項(xiàng)
保存退出后,使用scons --ide=mdk5命令生成mdk5工程:
雙擊project.uvprojx打開工程
編譯后是可以直接下載進(jìn)板子運(yùn)行的(默認(rèn)配置使用內(nèi)部時(shí)鐘HSI),stlink等下載器選項(xiàng)自行修改
- 下載器選項(xiàng)、下載算法等內(nèi)容可在template.uvprojx工程修改,修改后生成的mdk工程將使用模板工程的配置
在board.c中修改LED引腳, 戰(zhàn)艦為PB5和PE5, 修改后如下
重新編譯后燒錄運(yùn)行, 即可看到LED閃爍
默認(rèn)是配置了shell命令行的,使用串口1,將串口1接入電腦,可以看到shell正常運(yùn)行
修改時(shí)鐘:
使用stm32cubemx打開"board\CubeMX_Config\CubeMX_Config.ioc",選中外部時(shí)鐘
修改時(shí)鐘樹: 主頻改為72Mhz:
另外需要檢查debug是否已開啟,若sw被禁用會(huì)給燒錄程序帶來不便:
其他選項(xiàng)暫時(shí)不修改, 選擇生成代碼
cubemx生成的"stm32f1xx_hal_msp.c"已被包含進(jìn)工程, 主要對(duì)外設(shè)的時(shí)鐘,引腳復(fù)用,DMA等進(jìn)行配置,并對(duì)外設(shè)引腳進(jìn)行初始化
cubemx生成的main.c中, 含有時(shí)鐘初始化函數(shù)和外設(shè)功能初始化函數(shù), 這里只需要修改時(shí)鐘配置
打開"board\CubeMX_Config\Src\main.c" ,將SystemClock_Config函數(shù)復(fù)制并替換oneos工程bsp.c中的SystemClock_Config函數(shù), 結(jié)果如下:
至此,oneos在戰(zhàn)艦v3上的適配初步完成,時(shí)鐘已修改為外置時(shí)鐘, 串口1和shell已適配,添加外設(shè)將在后續(xù)更新
這里注意:
-
scons --ide=mdk5生成mdk工程時(shí), 將會(huì)通過腳本自動(dòng)將外設(shè)初始化函數(shù)從cubemx生成的main.c中復(fù)制到bsp.c中(會(huì)使用cubemx的外設(shè)初始化配置, 例如串口波特率配置等, 需要在cubemx中正確配置), 包含時(shí)鐘配置函數(shù), 只需生成mdk工程后進(jìn)行檢查
-
另外scons --ide=mdk5生成工程時(shí)會(huì)根據(jù)cubemx中的配置生成"board/peripherals.c", 這將是設(shè)備驅(qū)動(dòng)模型注冊(cè)設(shè)備信息的依據(jù),該.c文件通過include包含,無需也不能加入工程編譯,該文件可實(shí)現(xiàn)cubemx添加外設(shè)后,自動(dòng)注冊(cè)到設(shè)備驅(qū)動(dòng)模型
總結(jié):在cubemx修改外設(shè)配置、時(shí)鐘后,調(diào)用一次scons --ide=mdk5可以自動(dòng)將相關(guān)配置復(fù)制到工程
總結(jié)
以上是生活随笔為你收集整理的战舰V3适配oneos系列01:bsp适配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (简单介绍)PageRank算法
- 下一篇: 超级玛丽全通关图文攻略