0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread Nano 3.0.3 的基本功能及如何下載與使用

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 作者:李倩 ? 2018-04-02 15:58 ? 次閱讀

本文檔介紹了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線程)情況下,ROMRAM依然保持著極小的尺寸。我們基于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)核移植代碼:

cpuport.c context_rvds.s

應(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獲取。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    從安裝到使用,RT-Thread Nano最全教程看完不信你還不會(huì)使用

    RT-Thread Nano發(fā)布以來(lái),小編收到不少開(kāi)發(fā)者詢問(wèn)RT-Thread Nano的配套教程實(shí)例,幸得RT-Thread開(kāi)發(fā)者燕十三
    的頭像 發(fā)表于 09-26 06:39 ?5.7w次閱讀
    從安裝到使用,<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>最全教程看完不信你還不會(huì)使用

    i.MX RT1170:VGLite移植RT-Thread Nano過(guò)程講解(下)

    上篇介紹了如何移植 RT-Thread Nano 內(nèi)核與 Finsh 控制臺(tái)到 RT1170。本篇繼續(xù)介紹如何將 NXP 官方的 VGLite API 移植到 RT-Thread
    的頭像 發(fā)表于 11-09 11:22 ?932次閱讀

    基于 Keil MDK 移植 RT-Thread Nano

    。 RT-Thread Nano 已集成在 Keil MDK 中,可以直接在 IDE 中進(jìn)行下載添加。本文檔介紹了如何使用 MDK 移植 RT-Thread
    發(fā)表于 03-29 06:58

    如何基于CubeMX移植RT-Thread Nano?

    本文介紹了如何基于 CubeMX 移植 RT-Thread Nano,并說(shuō)明生成代碼工程的步驟。RT-Thread Nano 已集成在 CubeMX 中,可以直接在 IDE 中進(jìn)行
    發(fā)表于 03-29 06:56

    RT-Thread Nano 簡(jiǎn)介

    RT-Thread Nano 是一個(gè)極簡(jiǎn)版的硬實(shí)時(shí)內(nèi)核,它是由 C 語(yǔ)言開(kāi)發(fā),采用面向?qū)ο蟮木幊趟季S,具有良好的代碼風(fēng)格,是一款可裁剪的、搶占式實(shí)時(shí)多任務(wù)的 RTOS。其內(nèi)存資源占用極小,功能包括
    發(fā)表于 05-14 10:22

    基于 Keil MDK 移植 RT-Thread Nano

    直接在 IDE 中進(jìn)行下載添加。本文檔介紹了如何使用 MDK 移植 RT-Thread Nano,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。移植 Nano 的主要步驟:
    發(fā)表于 05-14 10:32

    基于 CubeMX 移植 RT-Thread Nano

    本文介紹了如何基于 CubeMX 移植 RT-Thread Nano,并說(shuō)明生成代碼工程的步驟。RT-Thread Nano 已集成在 CubeMX 中,可以直接在 IDE 中進(jìn)行
    發(fā)表于 05-14 16:09

    RT-Thread Studio 上使用 RT-Thread Nano

    本文介紹了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并以創(chuàng)建 stm32f103RB 的 Nano 工程為例。準(zhǔn)備工作安裝
    發(fā)表于 05-18 15:59

    基于 Keil MDK 移植 RT-Thread Nano

    直接在 IDE 中進(jìn)行下載添加。本文檔介紹了如何使用 MDK 移植 RT-Thread Nano,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。移植 Nano 的主要步驟:
    發(fā)表于 05-19 18:15

    RT-Thread Nano的相關(guān)資料下載

    RT-Thread Nano入門學(xué)習(xí)筆記作者:Linkk更新時(shí)間:2021.02.17學(xué)習(xí)過(guò)程中使用的芯片:stm32f103c8t6庫(kù)函數(shù):標(biāo)準(zhǔn)庫(kù)資料獲取RT-Thread官網(wǎng):https
    發(fā)表于 12-09 06:59

    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下載相關(guān)開(kāi)源資料請(qǐng)點(diǎn)擊閱讀原文這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread
    發(fā)表于 11-21 18:51 ?42次下載
    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread Nano入門學(xué)習(xí)筆記

    RT-Thread Nano入門學(xué)習(xí)筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入門學(xué)習(xí)筆記

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread Nano 已集成在 Keil
    發(fā)表于 01-26 17:04 ?16次下載
    基于 Keil MDK 移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    如何創(chuàng)建RT-Thread Nano工程

    本文將嘗試使用國(guó)產(chǎn)的嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread,相比較于FreeRTOS,RT-Thread還是有很多有點(diǎn)的,比如有Fish命令行界面,國(guó)產(chǎn)開(kāi)源免費(fèi),Nano版本代碼量極小,移植起來(lái)非常
    的頭像 發(fā)表于 03-19 12:13 ?3801次閱讀