RT-Thread的開發(fā)方式
RT-Thread有兩種開發(fā)方式,RT-Thread Studio和ENV工具+傳統(tǒng)的開發(fā)工具(IAR或Keil)。
RT-Thread Studio
Stdio的好處是直觀,對(duì)新手比較友好。不過經(jīng)過試用,發(fā)現(xiàn)其對(duì)新處理器支持受限比較嚴(yán)重,由于我們需要為F460的驅(qū)動(dòng)和BSP增加許多改進(jìn),因此沒有采用Studio的方法進(jìn)行開發(fā)。
https://www.rt-thread.org/document/site/#/development-tools/rtthread-studio/README
Env 工具 +? Keil
Env是一個(gè)使用Kconfig系統(tǒng)的配置和包管理工具,修改Kconfig、SConstruct可以方便擴(kuò)展現(xiàn)有的BSP和驅(qū)動(dòng)。Env工具使用方法參考官方的文章:
開發(fā)過程中需要注意的問題
RT-Thread 4.X和3.X建立工程的區(qū)別
之前3.x版本的bsp是和硬件(開發(fā)板)強(qiáng)關(guān)聯(lián)的,因此在新硬件上使用RT-Thread都需要一個(gè)增加bsp,然后編譯和提交git的時(shí)候都要帶著整個(gè)RT-Thread的源代碼,非常臃腫。
4.x版本的bsp更佳傾向于為使用這款處理器的所有硬件提供一個(gè)供修改的基礎(chǔ),使用scons --dist命令可以把所用芯片的bsp和系統(tǒng)組件打包成一個(gè)dist.zip。后續(xù)的開發(fā)直接基于這個(gè)打包后的dist目錄進(jìn)行開發(fā)就可以了。
有一篇介紹如何制作新bsp的文章對(duì)理解bsp的結(jié)構(gòu)非常有意義,建議參考https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md
ddl_config.h需要手工開啟用到的函數(shù)庫
hc32f460標(biāo)準(zhǔn)庫中的ddl_config.h文件中有一些了DDL_XXX_ENABLE的宏,默認(rèn)都是DDL_OFF,這樣即使包含了對(duì)應(yīng)的頭文件在編譯的時(shí)候還是會(huì)報(bào)錯(cuò)。需要手工修改該文件,把用到的外設(shè)庫打開。
Libraries\SConscript中需要添加用到的函數(shù)庫
Libraries\SConscript中默認(rèn)僅包含了部分外設(shè)函數(shù)庫,在使用新函數(shù)庫時(shí)需要自行加入需要用到的函數(shù)庫。系統(tǒng)公共組件,比如GPIO、DMA建議直接添加到文件中,RT-Thread中有獨(dú)立配置開關(guān)的外設(shè)庫,建議使用編譯選項(xiàng)的方式加入,減小代碼編譯時(shí)間。

J-Tag引腳當(dāng)作普通IO使用時(shí)的初始化
如果需要把用不到的J-Tag引腳當(dāng)作普通IO使用,需要對(duì)其進(jìn)行額外的初始化,參考其他驅(qū)動(dòng)的例子,應(yīng)該把初始化參數(shù)放在board_config.c中,然后在drv_gpio.c中引用。


如果不幸把當(dāng)前調(diào)試用到的引腳改掉,導(dǎo)致沒法進(jìn)行調(diào)試,需要修改CPU的啟動(dòng)引腳電平,讓CPU不運(yùn)行Flash中的代碼,然后再次修改代碼燒錄程序。
用盡CPU提供的內(nèi)存(修改board.h)
hc32f460的bsp默認(rèn)只使用了32kb的內(nèi)存,對(duì)于rt-thread全功能不是很寬裕。hc32f460提供了四段共188kb的SRAM,雖然分了四段,但是地址是連續(xù)的,如果沒有特殊需求的話四段可以作為一個(gè)整體使用。
修改board.h中的SRAM內(nèi)存結(jié)束地址,以使用全部內(nèi)存。

開發(fā)資料
HC32F460用戶手冊
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/65/id/47/key/0
HC32F460數(shù)據(jù)手冊
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/65/id/46/key/0
HC32F460驅(qū)動(dòng)庫
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/57/key/9
HC32F460驅(qū)動(dòng)庫幫助
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/57/key/8
HC32F460IDE支持包
https://www.hdsc.com.cn/cn/Index/downloadFile/modelid/66/id/58/key/2