各位嵌入式軟件工程師想必都有類似的經驗,使用無操作系統開發單片機時對于時序把控、任務延時及各任務之間的通信很難實現完整地條理清晰地編碼。
對于部分經驗不足的工程師,總會存在各種各樣的問題,如因為變量、參數函數位置以及延時方法等導致程序運行效率過低的情況。實時操作系統能很好地解決這些問題。一般無操作系統的情況下,經驗豐富的工程師可能會使用狀態機加定時器等實現任務的非阻塞延時,使用軟件定時器加回調函數實現簡單的定時任務等。
在操作系統中,可以統一使用系統延時rt_thread_mdelay來解決問題,操作方法類似于最開始學習單片機時的delay()函數一樣,無需擔心任務卡死。在簡單的應用中,如果使用多個任務,完全可以不用考慮系統會卡死。當然,該操作系統還有更高級的功能,此處不作贅述。
資料準備
本次移植基于國民的N32G430芯片進行移植,首先需要以下工具:
國民技術
軟件:Keil5,筆者使用的是5.27版本
開發板:淘寶隨便找一個國民技術的N32G430開發板,
下載國民技術的基礎資料包,直接將國民的鏈接粘貼在文件夾路徑框(FTP傳輸),找到如下文件:
解壓后找到,此文件為國民的基本支持包:
下載RTT NANO版本:
建議使用手動下載安裝:
下載如下:
安裝
Keil安裝完成的情況下,分別將RealThread.RT-Thread.3.1.5.pack及Nations.N32G430_DFP.1.1.0.pack雙擊安裝,無需其他設置步驟,軟件會自動安裝到位。
創建工程
先創建一個demo工程,選擇國民的N32G430芯片,確認后軟件自動進入組件選擇。
組件選擇:選中如下的內容;
如果彈出報錯,先截個圖,稍后手動拷貝,由于安裝時firmware并不會安裝到位,一般是手動拷貝的,此處手動從國民的SDK中拷貝;
Firmware路徑:
按照下圖創建目錄拷貝即可:
接下來,進入組件管理界面:
在剛在的工程文件夾下找到以下文件:
\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部分,前邊選組件只是為了保證后續手動移植時知道選擇哪些文件以及從哪里拷貝文件,目標文件在哪里等。
接下來配置工程的包含路徑:
添加路徑:
接下來進行第一次編譯;
出現如下報錯,證明文件基本移植完成,接下來可以處理系統對接相關內容。
首先處理系統時鐘:
接下來添加main文件,先建立user文件夾,在文件夾下添加main.c文件,并將文件添加至工程。
簡單寫一個空的main函數,開始編譯:
編譯完成,僅一個告警,問題不大,可以忽略。
接下來處理系統打印,打開控制臺功能:
main任務寫個簡單的打印,編譯:
至此,移植全部完成,接下來下載編譯即可,此處不再贅述。
-
單片機
+關注
關注
6067文章
44973瀏覽量
649984 -
操作系統
+關注
關注
37文章
7140瀏覽量
125508
發布評論請先 登錄
國產操作系統再“超越”,RT-Thread推動AIoT產業變革
RT-Thread編程指南
嵌入式實時操作系統RT-Thread的特點與體系結構及移植方法詳細說明

國民技術攜手RT-Thread共同推進MCU與RT-Thread操作系統廣泛適配
國民技術與睿賽德科技(RT-Thread)簽署會員合作協議
RT-Thread學習筆記分享
如何創建RT-Thread Nano工程
RT-Thread操作系統的FreeRTOS兼容層
新書發布——《實時操作系統應用技術:RT-Thread與ARM編程實踐》

評論