本文檔介紹了RT-Thread Nano 3.0.3 的基本功能,并介紹了如何下載及使用RT-Thread Nano 3.0.3及相關(guān)BSP例程。
RT-Thread Nano 3.0.3相比上一個(gè)版本2.1.1有了些新的變化:
新增V2M-MPS2 BSP支持
修復(fù)MDK 5.14無(wú)法復(fù)制license問(wèn)題
更新board.c模板,簡(jiǎn)化不必要的配置
msh命令導(dǎo)出默認(rèn)添加RT_USED屬性,不需要另外加keep選項(xiàng)
更新stm32_msh和lpc824_msh例子的uart代碼,不再依賴drivers ipc部分
移除drivers ipc部分源碼
1 本文的目的和結(jié)構(gòu)
1.1 本文的目的和背景
RT-Thread Nano 是 RT-Thread推出的極簡(jiǎn)版實(shí)時(shí)操作系統(tǒng),適用于家電、消費(fèi)電子、醫(yī)療設(shè)備、工控等領(lǐng)域大量使用的32位ARM入門級(jí)MCU的場(chǎng)合。本文檔是快速入門文檔,方便用戶快速上手使用RT-Thread Nano 3.0.3。
1.2 本文的結(jié)構(gòu)
本文首先介紹RT-Thread Nano 3.0.3基本功能,然后講解了如何安裝及配置RT-Thread Nano 3.0.3及如何獲取RT-Thread Nano 3.0.3相關(guān)例程。
2 RT-Thread Nano 簡(jiǎn)介
RT-Thread Nano是一個(gè)精煉的硬實(shí)時(shí)內(nèi)核,內(nèi)存資源占用極小,功能包括任務(wù)處理、軟件定時(shí)器、信號(hào)量、郵箱和實(shí)時(shí)調(diào)度等相對(duì)完整的實(shí)時(shí)操作系統(tǒng)特性。MDK5以后采用pack形式管理芯片及各種相關(guān)組件,RT-Thread Nano也是通過(guò)MDK pack方式發(fā)布,RT-Thread Nano pack包括device drivers、kernel 和 shell (msh) 三部分功能,用戶可以從MDK的Run-time Environment按需要加載。
圖2-1 RT-Thread Nano主要功能
在支持semaphore和mailbox特性,并運(yùn)行兩個(gè)線程(main線程+idle線程)情況下,ROM和RAM依然保持著極小的尺寸。我們基于Cortex M0 MCU的一個(gè)例子,編譯后的大小(ROM: 3.25K, RAM: 1.04K),除去MCU需要的ROM和RAM, RT-Thread Nano本身需要的ROM是2.5K , RAM 是1K。
圖2-2 RT-Thread Nano內(nèi)存占用情況
用戶基于Nano的應(yīng)用程序可以直接遷移到RT-Thread完整版。接下來(lái)將描述如何在MDK5上基于RTE(Run-Time Environment), 從裸機(jī)開(kāi)始,創(chuàng)建一個(gè)RT-Thread RTOS的小系統(tǒng)工程。
3 Pack安裝
Pack可以通過(guò)MDK聯(lián)網(wǎng)安裝,也可以離線安裝。下面開(kāi)始介紹兩種安裝方式。
Pack Installer安裝
打開(kāi)MDK軟件,點(diǎn)擊工具欄的Pack Installer圖標(biāo):
圖3-1 Packs安裝
點(diǎn)擊右側(cè)的Pack,展開(kāi)General,可以找到rt-thread::rthread,點(diǎn)擊對(duì)應(yīng)的Action的Install,就可以在線安裝Pack了。安裝成功后Action欄顯示 ”Up to date”。
圖3-2 Packs管理
手動(dòng)安裝
我們也可以從官網(wǎng)下載安裝文件,RT-Thread Nano離線安裝包下載,雙擊下載好的文件進(jìn)行安裝:
圖3-3 Packs手動(dòng)安裝
4 基礎(chǔ)工程準(zhǔn)備
在開(kāi)始創(chuàng)建RT-Thread小系統(tǒng)之前,我們需要準(zhǔn)備一個(gè)能正常運(yùn)行的裸機(jī)工程。作為示例,本文使用的是基于STM32L072-Discovery 和Low-Level Library的一個(gè)LED 閃爍程序。程序的主要截圖如下:
圖4-1 STM32L072-Discovery示例
在我們的例程中,編譯下載程序后,就可以看到3個(gè)LED交替閃爍了。讀者可以根據(jù)自己的需要使用其他芯片,完成一個(gè)簡(jiǎn)單的類似裸機(jī)工程。
5 添加RT-Thread Nano到工程
基于一個(gè)可以運(yùn)行的裸機(jī)程序,我們來(lái)添加RT-Thread到工程。如下圖,點(diǎn)擊Manage Run-Time Environment。
圖5-1 MDK RTE
在Manage Rum-Time Environment里”Software Component”欄找到RTOS,Variant欄選擇RT-Thread,然后勾選kernel,點(diǎn)擊”O(jiān)K”就添加RT-Thread內(nèi)核到工程了。
圖5-2 Nano內(nèi)核添加
現(xiàn)在可以在Project看到RT-Thread RTOS已經(jīng)添加進(jìn)來(lái)了,展開(kāi)RTOS,可以看到添加到工程的文件:
圖5-3 添加了RTOS的工程
Kernel文件包括:
clock.c components.c device.c idle.c ipc.c irq.c kservice.c mem.c object.c scheduler.c thread.c timer.c
Cortex-M芯片內(nèi)核移植代碼:
應(yīng)用代碼及配置文件:
board.c rtconfig.h
6 適配RTThread
RT-Thread會(huì)用到了異常處理函數(shù)HardFault_Handler()和懸掛處理函數(shù)PendSV_Handler(),以及Systick中斷服務(wù)函數(shù)SysTick_Handler(),所以用戶代碼需要保證這幾個(gè)函數(shù)沒(méi)有被使用,若編譯提示函數(shù)重復(fù)定義,請(qǐng)刪除自己定義的函數(shù)。
RT-Thread Nano 3.0.3 在 board.c 中默認(rèn)完成了systick 的配置,用戶可以修改宏RT_TICK_PER_SECOND的值配置每秒systick數(shù)。
圖6-1 systick配置
RT-Thread Nano 3.0.3 默認(rèn)是使用數(shù)組作為heap。
圖6-2 heap配置
替換例程中的delay函數(shù):
1). 包含RT-Thread的相關(guān)頭文件
2). 將delay()函數(shù)替換成rt_thread_delay(RT_TICK_PER_SECOND)
下面是完成修改的代碼:
圖6-3 異常處理修改
編譯程序之后下載到芯片就可以看到基于RT-Thread的程序運(yùn)行起來(lái)了。
7 RT-Thread Nano配置
RT-Thread是一個(gè)高度可配置的嵌入式實(shí)時(shí)操作系統(tǒng),配置文件是rtconfig.h。Nano就是rtconfig.h配置下實(shí)現(xiàn)了2.5K ROM,1K RAM的內(nèi)核應(yīng)用。用戶可以根據(jù)自己的需要通過(guò)修改rtconfig.h文件里面的宏定義配置相應(yīng)功能。
RT-Thread Nano默認(rèn)未開(kāi)啟宏RT_USING_HEAP,故只支持靜態(tài)方式創(chuàng)建任務(wù)及信號(hào)量。若要通過(guò)動(dòng)態(tài)方式創(chuàng)建對(duì)象則需要在rtconfig.h文件里開(kāi)啟RT_USING_HEAP宏定義。
MDK的配置向?qū)onfiguration Wizard 可以很方便的對(duì)工程進(jìn)行配置,Value一欄可以選中對(duì)應(yīng)功能及修改相關(guān)值,等同于直接修改配置文件rtconfig.h。
圖7-1 Nano配置
8 BSP例程
目前有5個(gè)RT-Thread Nano 參考例程,2個(gè)基于stm32l0的例程,2個(gè)基于lpc824的例程,以及Nano 3.0.3 新增的基于V2M-MPS2的例程。所有例程都可以在MDK上通過(guò)Pack Installer找到。點(diǎn)擊Pack Installer圖標(biāo):
圖8-1 pack installer
在Search里輸入stm32l0,點(diǎn)擊Device里的STM32L0 Serials,然后點(diǎn)擊右側(cè)的Example,可以看到右側(cè)有基于stm32l0的兩個(gè)例程。
圖8-2 例程
V2M-MPS2 msh 例程簡(jiǎn)介
V2M-MPS2是MDK提供的開(kāi)發(fā)板,配合Fast Models Debugger(需要MDK-ARM Professional授權(quán)且只支持64位系統(tǒng)),就可以不依賴任何硬件,在Cortex-M平臺(tái)調(diào)試代碼。
使用V2M-MPS2需要打開(kāi)windows的telnet客戶端:
win7打開(kāi)telnet客戶端(https://jingyan.baidu.com/article/eb9f7b6d8701ae869364e826.html)
win10打開(kāi)telnet客戶端(https://jingyan.baidu.com/article/ceb9fb10a9a1b48cad2ba0c4.html)
打開(kāi)telnet后,在MDK的Pack Installer里面的Device選擇ARM,右側(cè)點(diǎn)擊example,可以看到一個(gè)基于V2M_MPS2的msh例程。
圖8-3 V2M_MPS2 msh例程
點(diǎn)擊Copy,導(dǎo)出該例子,編譯工程仿真運(yùn)行,下面是運(yùn)行成功的截圖。
圖8-4 V2M_MPS2 msh例程運(yùn)行成功截圖
RT-Thread 同樣提供了基于RT-Thread完整版的V2M-MPS2的BSP(板級(jí)支持包)(https://github.com/RT-Thread/rt-thread/tree/master/bsp/v2m-mps2),用戶可以通過(guò)github獲取。
-
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356005 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1289瀏覽量
40129
原文標(biāo)題:RT-Thread Nano 3.0.3 快速入門指南
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論