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