一、前言
這一講我來(lái)給大家介紹幾種常用的新建工程的方法,在開始之前,我們需要先安裝好RT-thread相關(guān)的環(huán)境,這個(gè)在我上一講有詳細(xì)的教程,沒有看過(guò)的同學(xué)可以點(diǎn)下面的鏈接或者在我的博文RT-thread專欄看一下。
RT-Thread零基礎(chǔ)快速入門第0講——環(huán)境安裝:https://blog.csdn.net/ShenZhen_zixian/article/details/105019464
另外,我也是剛?cè)腴TRT-thread,有些地方可能講的不好或者不全面,勿怪勿怪,如果發(fā)現(xiàn)文章有誤,請(qǐng)一定要指正,謝謝!??!
二、使用ENV工具新建項(xiàng)目工程
這是我最推薦大家使用的一種方法,因?yàn)橥ㄟ^(guò)ENV工具,我們可以非常方便的增加和刪減我們所需驅(qū)動(dòng)的上層接口,再通過(guò)STM32CubeMX配置使能底層驅(qū)動(dòng),就可以根據(jù)我們的需要建立和修改工程。
env詳細(xì)的用法可以在RT-thread官方的文檔中心查看,我這里只講新建工程相關(guān)的用法。當(dāng)然了,后面會(huì)根據(jù)我的入門教程,逐一介紹env的其他用法。
env使用視頻教程鏈接:https://www.rt-thread.org/document/site/tutorial/env-video/
env創(chuàng)建工程教程鏈接:https://www.rt-thread.org/document/site/application-note/setup/standard-project/an0017-standard-project/
使用env生成工程
第一步:下載RT-thread官方源碼
RT-thread官方源碼下載鏈接:https://www.rt-thread.org/page/download.html
百度網(wǎng)盤地址:https://pan.baidu.com/s/1pAhjlSxzLdJ68kDjNJXJgA
提取碼:46qf
如果官方的鏈接下載比較慢的話可以試一下在我的網(wǎng)盤上面下載
第二步:打開源碼里面的bsp文件夾,找到你需要建立工程的芯片型號(hào)
需要注意的是,源碼文件夾所在的路徑上不能有中文命名的文件夾,不然后面不能正常使用env
建議用版本新一點(diǎn)的源碼,因?yàn)榕f版本的源碼包含的芯片會(huì)少一些,有些芯片的固件庫(kù)沒有。
第三步:在芯片目錄下右鍵,打開env,輸入scons --dist,等待命令執(zhí)行完畢
scons –dist命令是用來(lái)搭建項(xiàng)目框架的,使用此命令會(huì)在 BSP 目錄下生成 dist 目錄,這便是開發(fā)項(xiàng)目的目錄結(jié)構(gòu),包含了RT-Thread源碼及BSP相關(guān)工程,不相關(guān)的BSP文件夾及l(fā)ibcpu都會(huì)被移除,并且可以隨意拷貝此工程到任何目錄下使用。
當(dāng)然,你也可以直接用官方的源碼作為你的項(xiàng)目工程,不過(guò)這樣一來(lái),你的工程文件占用的內(nèi)存就比較大了。如果你要用官方源碼作為工程,可以直接跳到第五步。
第四步:打開dist文件夾,把我們需要的項(xiàng)目工程移到別的文件路徑
當(dāng)然,就放在這里也可以,就是下次需要打開項(xiàng)目工程的時(shí)候不好找
第五步,在新的工程目錄下重新打開env,輸入menuconfig
輸入的指令可以只輸入前面幾個(gè)字母,然后按tab鍵,會(huì)自動(dòng)補(bǔ)全后面的字母
在menuconfig頁(yè)面,我們可以配置我們需要的硬件驅(qū)動(dòng),軟件包等。例如,我們把串口2和串口3打開,可以在Hardware Drivers Config/On-chip Peripheral Drivers/Enable UART目錄下把Enable UART2和Enable UART3打開
menuconfig具體的操作方法可以在官方的文檔中心的Env用戶手冊(cè)查看
Env用戶手冊(cè)鏈接:https://www.rt-thread.org/document/site/programming-manual/env/env/
第六步:按esc退出menuconfig并保存
退出的時(shí)候會(huì)提示你是否要保存,點(diǎn)yes保存配置
第七步:在env命令窗口輸入scons –target=mdk5,生成新的項(xiàng)目工程
也可以輸入scons –target=mdk4或者scons –target=iar,根據(jù)自己的需要生成對(duì)應(yīng)的工程即可
如果你的目錄沒有錯(cuò)誤的話,生成新的工程會(huì)有下面這些提示,如果要加入工程的文件沒有在項(xiàng)目所在的文件夾里面的話,會(huì)提示找不到這個(gè)文件.
使用STM32CubeMX配置底層驅(qū)動(dòng)
第一步:打開我們新建的工程目錄,找到board/ CubeMX_Config目錄下的CubeMX_Config.ioc,這是STM32CubeMX的工程文件
第二步:打開CubeMX_Config.ioc
如果你的STM32CubeMX沒有安裝項(xiàng)目工程芯片對(duì)應(yīng)的固件庫(kù),會(huì)有下面的提示,點(diǎn)擊Download下載固件庫(kù)。(如果你已經(jīng)下載了最新的固件庫(kù),而工程用的是老版本的固件庫(kù),也需要再下載舊的固件庫(kù))
第三步:根據(jù)需要配置芯片的參數(shù)
使用STM32CubeMX我們可以根據(jù)需要配置單片機(jī)的所有參數(shù),比如晶振時(shí)鐘,使能定時(shí)器、設(shè)置串口波特率等
我這里只舉一個(gè)例子,具體的用法比較多,我這里就不多說(shuō)了,你們可以在網(wǎng)上找一下教程
第四步:點(diǎn)擊Project Manger,點(diǎn)擊GENERATE CODE等待生成新的工程即可
生成新的工程之后會(huì)有下面的提示,點(diǎn)Close即可,不需要打開工程,因?yàn)榇蜷_的這個(gè)工程是不包含RT-thread框架的,是裸機(jī)工程。
實(shí)際上我們用STM32CubeMX只是修改工程目錄下面的相關(guān)的底層驅(qū)動(dòng)文件而已
第五步:打開工程目錄下的項(xiàng)目文件,編譯
Keil5.24以上版本編譯的時(shí)候可能會(huì)有一個(gè)問題,就是編譯的時(shí)候會(huì)突然卡住一段時(shí)間,雖然最后都能編譯成功,但是需要的時(shí)間會(huì)比較長(zhǎng)。解決的辦法是:打開Project/Options for Target/Output,把Browse Inoformation前面的勾去掉,不過(guò)這樣一來(lái),我們就不能跳轉(zhuǎn)到聲明和定義了。所以建議大家還是不要用keil寫代碼了,用過(guò)別的編程軟件的同學(xué)應(yīng)該都知道,keil本身寫代碼也不是特別的方便,我們可以用別的編程軟件寫代碼(比如Visual Studio Code、soucer insigned等),再用keil編譯就行了
三、使用RT-Thread Studio新建項(xiàng)目工程
我基本不用RT-Thread Studio建工程,還是比較喜歡用env建工程。而且據(jù)說(shuō)用RT-Thread Studio建的工程有時(shí)候會(huì)出問題,因?yàn)檫@個(gè)軟件也是剛開發(fā)出來(lái)的。但是,不可否認(rèn)RT-Thread Studio這個(gè)軟件用起來(lái)的確非常便捷,而且它也可以編譯和燒錄,擺明了就是要替代MDK嘛,雖然要完全替代MDK還有比較長(zhǎng)的路要走,但是前景是好的,等這個(gè)軟件真正完善的時(shí)候,相信會(huì)是一個(gè)非常強(qiáng)大的軟件。
在官方的文檔中心有非常詳細(xì)的RT-Thread Studio使用教程,所以在這里我就不多說(shuō)了,感興趣的同學(xué)可以去看一下。
RT-Thread Studio使用教程鏈接:https://www.rt-thread.org/document/site/rtthread-studio/nav/#
四、在原有的工程上移植RT-thread
這種方法我個(gè)人是不建議大家去用的,既然選擇了RT-Thread,有些習(xí)慣我們就需要去改變,以前我們可能會(huì)經(jīng)常在keil里面把新的文件加到工程里面,然后把頭文件路徑加進(jìn)來(lái),或者去修改底層的庫(kù)函數(shù)的代碼,比如把某個(gè)宏定義的注釋打開,等等,包括我自己,其實(shí)也是經(jīng)常這樣做。但是,在使用RT-thread這個(gè)操作系統(tǒng)的時(shí)候,這些操作效率是很低的,我們用RT-thread主要的精力應(yīng)該放在應(yīng)用層的開發(fā),而不是去配底層驅(qū)動(dòng)。例如,我們用env生成一個(gè)工程之后用keil把新的文件加進(jìn)來(lái),等我們調(diào)試完成之后發(fā)現(xiàn)還需要在env中再增加其他軟件包,這時(shí)用env生成新的工程是不包含之前用keil加到工程的文件的,你還需要繼續(xù)加一遍。所以,最好的方法是直接用env一次性把所有需要的文件包含進(jìn)來(lái),把所有配置都設(shè)置好。
移植的方法在官方的文檔中心也有詳細(xì)的介紹,包括keil,iar等開發(fā)環(huán)境的教程都有,我就不多說(shuō)了,感興趣的同學(xué)可以去看一下。
使用keil移植RT-Thread教程鏈接:https://www.rt-thread.org/document/site/tutorial/nano/nano-port-keil/an0039-nano-port-keil/
使用IAR移植RT-Thread教程鏈接:https://www.rt-thread.org/document/site/tutorial/nano/nano-port-iar/an0040-nano-port-iar/
五、結(jié)束語(yǔ)
關(guān)于RT-Thread新建工程的介紹就到這里,如果你覺得有用,可以點(diǎn)贊收藏,謝謝!?。?br /> 后面我會(huì)持續(xù)更新一些RT-Thread的項(xiàng)目開發(fā),感興趣的同學(xué)可以關(guān)注博主,謝謝?。?!
RT-thread相關(guān)教程匯總:https://blog.csdn.net/ShenZhen_zixian/article/details/120563891