各位嵌入式軟件工程師想必都有類似的經(jīng)驗(yàn),使用無操作系統(tǒng)開發(fā)單片機(jī)時(shí)對(duì)于時(shí)序把控、任務(wù)延時(shí)及各任務(wù)之間的通信很難實(shí)現(xiàn)完整地條理清晰地編碼。
對(duì)于部分經(jīng)驗(yàn)不足的工程師,總會(huì)存在各種各樣的問題,如因?yàn)樽兞俊?a target="_blank">參數(shù)函數(shù)位置以及延時(shí)方法等導(dǎo)致程序運(yùn)行效率過低的情況。實(shí)時(shí)操作系統(tǒng)能很好地解決這些問題。一般無操作系統(tǒng)的情況下,經(jīng)驗(yàn)豐富的工程師可能會(huì)使用狀態(tài)機(jī)加定時(shí)器等實(shí)現(xiàn)任務(wù)的非阻塞延時(shí),使用軟件定時(shí)器加回調(diào)函數(shù)實(shí)現(xiàn)簡(jiǎn)單的定時(shí)任務(wù)等。
在操作系統(tǒng)中,可以統(tǒng)一使用系統(tǒng)延時(shí)rt_thread_mdelay來解決問題,操作方法類似于最開始學(xué)習(xí)單片機(jī)時(shí)的delay()函數(shù)一樣,無需擔(dān)心任務(wù)卡死。在簡(jiǎn)單的應(yīng)用中,如果使用多個(gè)任務(wù),完全可以不用考慮系統(tǒng)會(huì)卡死。當(dāng)然,該操作系統(tǒng)還有更高級(jí)的功能,此處不作贅述。
資料準(zhǔn)備
本次移植基于國(guó)民的N32G430芯片進(jìn)行移植,首先需要以下工具:
國(guó)民技術(shù)
軟件:Keil5,筆者使用的是5.27版本
開發(fā)板:淘寶隨便找一個(gè)國(guó)民技術(shù)的N32G430開發(fā)板,
下載國(guó)民技術(shù)的基礎(chǔ)資料包,直接將國(guó)民的鏈接粘貼在文件夾路徑框(FTP傳輸),找到如下文件:
解壓后找到,此文件為國(guó)民的基本支持包:
下載RTT NANO版本:
建議使用手動(dòng)下載安裝:
下載如下:
安裝
Keil安裝完成的情況下,分別將RealThread.RT-Thread.3.1.5.pack及Nations.N32G430_DFP.1.1.0.pack雙擊安裝,無需其他設(shè)置步驟,軟件會(huì)自動(dòng)安裝到位。
創(chuàng)建工程
先創(chuàng)建一個(gè)demo工程,選擇國(guó)民的N32G430芯片,確認(rèn)后軟件自動(dòng)進(jìn)入組件選擇。
組件選擇:選中如下的內(nèi)容;
如果彈出報(bào)錯(cuò),先截個(gè)圖,稍后手動(dòng)拷貝,由于安裝時(shí)firmware并不會(huì)安裝到位,一般是手動(dòng)拷貝的,此處手動(dòng)從國(guó)民的SDK中拷貝;
Firmware路徑:
按照下圖創(chuàng)建目錄拷貝即可:
接下來,進(jìn)入組件管理界面:
在剛在的工程文件夾下找到以下文件:
\Device\N32G430K8L7\CMSIS\device\system_n32g430.c
\Device\N32G430K8L7\CMSIS\device\startup\startup_n32g430.s
\Device\N32G430K8L7\n32g430_std_periph_driver\src\misc.c
\Device\N32G430K8L7\n32g430_std_periph_driver\src\n32g430_rcc.c
\Device\N32G430K8L7\n32g430_std_periph_driver\src\n32g430_gpio.c
雙擊添加:
選擇編譯器,此步驟不選沒法編譯:
之后返回組件選擇,僅保留RTT部分,前邊選組件只是為了保證后續(xù)手動(dòng)移植時(shí)知道選擇哪些文件以及從哪里拷貝文件,目標(biāo)文件在哪里等。
接下來配置工程的包含路徑:
添加路徑:
接下來進(jìn)行第一次編譯;
出現(xiàn)如下報(bào)錯(cuò),證明文件基本移植完成,接下來可以處理系統(tǒng)對(duì)接相關(guān)內(nèi)容。
首先處理系統(tǒng)時(shí)鐘:
接下來添加main文件,先建立user文件夾,在文件夾下添加main.c文件,并將文件添加至工程。
簡(jiǎn)單寫一個(gè)空的main函數(shù),開始編譯:
編譯完成,僅一個(gè)告警,問題不大,可以忽略。
接下來處理系統(tǒng)打印,打開控制臺(tái)功能:
main任務(wù)寫個(gè)簡(jiǎn)單的打印,編譯:
至此,移植全部完成,接下來下載編譯即可,此處不再贅述。
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44489瀏覽量
631975 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6684瀏覽量
123140
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論