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

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

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

RT-Thread Nano 上線ST CubeMX

RT-Thread官方賬號 ? 2024-09-20 08:10 ? 次閱讀

感謝ST法國CubeMX團隊的支持,RT-Thread Nano已成功上線ST CubeMX。本文將詳細介紹如何快速上手RT-Thread Nano,并指導(dǎo)大家在ST CubeMX上進行項目配置和開發(fā)。一起來看看吧!

一、準(zhǔn)備工作

軟件準(zhǔn)備:

STM32 CubeMX_v6.11.0 以上版本

Keil MDK

串口工具(推薦使用MobaXterm)

硬件準(zhǔn)備:

STM32 開發(fā)板(Cortex-M系列,這里我們以STM32F411RCT6 芯片作為演示)

二、安裝 RT-Thread Nano v4.1.1 軟件包

首先打開 STM32 CubeMX 軟件,進入主頁面后找到右側(cè)的嵌入式軟件包選項(Install or remove embedded software packages),點擊 [ INSALL / REMOVE ] :

b7740816-76e4-11ef-bb4b-92fbcf53809c.png

在彈出的 Embedded Software Packages Manager 界面的上方導(dǎo)航欄中找到 RT-Thread 廠商 —> [ RealThread ] ,展開 X-CUBE-RT-Thread_Nano ,勾選中 RT-Thread Software Components (Size: 5.50 MB) ,并且點擊 Install :

b784748a-76e4-11ef-bb4b-92fbcf53809c.png

同意條款并點擊 Finish :

b7920c9e-76e4-11ef-bb4b-92fbcf53809c.png

注:此處如果沒有找到 RealThread 廠商選項,可點擊下方 Refresh 按鈕更新資源包索引后開始下載,下載成功后 RT-Thread Software Components 4.1.1 呈深綠色方形顯示,關(guān)閉窗口后開始工程創(chuàng)建。

三、創(chuàng)建 STM32 CubeMX 項目工程

創(chuàng)建工程可以選擇基于 MCU 或 Board,這里我們以創(chuàng)建 MCU 作為教學(xué)演示,點擊 ACCESS TO MCU SELECTOR ,在左上角的 Commercial Part Number 中輸入芯片型號,這里我的芯片型號為 STM32F411RCT6 ,選中對應(yīng)MCU后點擊右上角 Start Project 。

b7bfe54c-76e4-11ef-bb4b-92fbcf53809c.png

四、芯片配置

首先勾選 RT-Thread Nano v4.1.1 軟件包,依次點擊 Software Packs-> Select Components,并找到 RealThread.X-CUBE-RT-Thread_Nano 4.1.1 一欄,根據(jù)開發(fā)需求勾選配置項,其中 kernel 和 libcpu 為必選項,這里我們選擇 kernel、shell 和 ibcpu 三個配置項后點擊 OK:

b80e8de6-76e4-11ef-bb4b-92fbcf53809c.png

在左側(cè)導(dǎo)航欄中找到 RT-Thread Nano 軟件包,同時在 Mode 一欄中使能 RTOS RT-Thread,接著我們在 Parameter Settings 中進行內(nèi)核配置,這一步我們保持默認(rèn)即可,同時往下翻找到 Finsh Configuration,使能 Finsh組件:

b822faa6-76e4-11ef-bb4b-92fbcf53809c.png

為了給 Finsh 組件提供串口設(shè)備,需要我們勾選一個串口,點擊左側(cè)功能欄 Connectivity —> USART1,設(shè)置串口模式為異步:

b82f6ad4-76e4-11ef-bb4b-92fbcf53809c.png

選擇 System Core —>SYS,將 Debug 選項配置為 Serial Wire:

b83b0358-76e4-11ef-bb4b-92fbcf53809c.png

在 RT-Thread 中重新定義了`HardFault_Handler`, `PendSV_Handler`, `SysTick_Handler`中斷函數(shù)。為避免重復(fù)定義,在生成項目之前,請取消選擇中斷配置中的三個中斷函數(shù)(對應(yīng)注釋了的選項`Hard fault interrupt`、`Pendable request`、`Time base: System tick timer`)

b8514640-76e4-11ef-bb4b-92fbcf53809c.png

點擊 Project Manager,填寫項目名稱,并修改 Toolchain / IDE 為 MDK-ARM,最后生成工程文件(在點擊生成工程后會提示 RTOS 時基源的修改警告,點擊 Yes 即可)

b868e534-76e4-11ef-bb4b-92fbcf53809c.png

五、工程配置

1.概述

打開 MDK 工程后,工程目錄下會生成幾個 Middlewares Group,如下所示:

b88ca7a8-76e4-11ef-bb4b-92fbcf53809c.png

2.Finsh組件配置

打開 Middlewares/RT-Thread/RTOS/kernel 目錄下的 board.c 文件,修改 uart_init() 函數(shù)中串口號,該串口號默認(rèn)為 USART1,需要根據(jù)實際在 CubeMX 中配置的串口進行修改

b8a01bee-76e4-11ef-bb4b-92fbcf53809c.png

3.主函數(shù)配置

在 main.c 中包含頭文件 `#include`,同時在 main 函數(shù)的 while(1) 中定義延時,以便 Finsh 和其他線程得到系統(tǒng)調(diào)度:

b9455dac-76e4-11ef-bb4b-92fbcf53809c.pngb955d024-76e4-11ef-bb4b-92fbcf53809c.png

4.觀察現(xiàn)象

在 MDK 中燒錄程序后打開串口助手,復(fù)位開發(fā)板查看終端運行情況:

b9669b66-76e4-11ef-bb4b-92fbcf53809c.png

到這里,RT-Thread Nano v4.1.1 就成功運行起來了。

六、內(nèi)存堆初始化

系統(tǒng)內(nèi)存堆的初始化是通過 board.c 中的 rt_hw_board_init() 函數(shù)實現(xiàn)的,如果需要啟用內(nèi)存堆可通過宏定義 RT_USING_HEAP 實現(xiàn),RT-Thread Nano 默認(rèn)不開啟內(nèi)存堆功能。一旦 RT_USING_HEAP 被啟用,系統(tǒng)會默認(rèn)使用一個數(shù)組作為堆,堆的其實地址和結(jié)束地址作為參數(shù)傳遞給堆初始化函數(shù) rt_system_heap_init(),該函數(shù)在 rt_hw_board_init() 中調(diào)用。

如果不希望使用數(shù)組作為動態(tài)內(nèi)存堆,可以使用 RAM 的 ZI 段的末尾作為 HEAP 的起始地址(需要確保它與鏈接腳本對應(yīng)上),并使用RAM的結(jié)束地址作為 HEAP 的結(jié)束地址,代碼實現(xiàn)如下所示:

b98f3b66-76e4-11ef-bb4b-92fbcf53809c.pngb99cf670-76e4-11ef-bb4b-92fbcf53809c.png

七、其他說明

RT-Thread 的線程創(chuàng)建、信號量、互斥鎖的使用需要配置內(nèi)存管理機制,RT-Thread Nano 允許配置使用小內(nèi)存管理算法,如需在 Cubemx 中進行相關(guān)配置,請打開工程的 CubeMX 執(zhí)行文件,使能如下選項:

b9be0acc-76e4-11ef-bb4b-92fbcf53809c.png

> 注意:在使用RT-Thread Nano v4.1.1 CubeMX軟件包時請閱讀各個配置項的參數(shù)說明,部分配置項存在依賴關(guān)系,需根據(jù)說明進行配置。

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

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354286
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4895

    瀏覽量

    97055
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1261

    瀏覽量

    39836
  • CubeMx
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    1306
收藏 人收藏

    評論

    相關(guān)推薦

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會報名啟動!

    親愛的RT-Thread開發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發(fā)者大會)正式啟動報名!2024RT-Threa
    的頭像 發(fā)表于 10-29 08:06 ?155次閱讀
    開源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開發(fā)者大會報名啟動!

    STM32CubeMX為什么無法添加rt-thread-nano?

    STM32CubeMX 無法添加 rt-thread-nano
    發(fā)表于 09-27 06:17

    課程上線 - RT-Thread應(yīng)用開發(fā)實踐課程上線慕課平臺啦!

    我們非常高興地告訴大家,由廣東機電職業(yè)技術(shù)學(xué)院的老師們制作的,使用《RT-Thread應(yīng)用開發(fā)實踐》作為教材的課程——嵌入式操作系統(tǒng)應(yīng)用,正式上線慕課平臺啦!歡迎各位想要系統(tǒng)學(xué)習(xí)RT-Thread
    的頭像 發(fā)表于 09-14 08:07 ?281次閱讀
    課程<b class='flag-5'>上線</b> - <b class='flag-5'>RT-Thread</b>應(yīng)用開發(fā)實踐課程<b class='flag-5'>上線</b>慕課平臺啦!

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來襲!

    親愛的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個深入學(xué)習(xí)RT-Thread嵌入式開發(fā)的絕佳機會。
    的頭像 發(fā)表于 08-07 08:35 ?823次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來襲!

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統(tǒng)開源項目在GitHub上的star數(shù)量突破一萬!截止發(fā)文,RT-Thread作為實時操作系統(tǒng)在業(yè)界Star數(shù)量排名第一!倉庫地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?378次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 05-28 08:35 ?385次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 04-19 08:34 ?384次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 04-16 08:35 ?382次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深嵌入式軟件工程師農(nóng)曉明老師為您講
    的頭像 發(fā)表于 03-27 11:36 ?742次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 03-27 08:34 ?464次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計劃!

    前不久,恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現(xiàn)已成為恩智浦注冊合作伙伴(RT-Thread| 簡介合
    的頭像 發(fā)表于 03-14 10:40 ?553次閱讀
    恩智浦半導(dǎo)體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計劃!

    基于CubeMXRT-thread Nano可以添加microros這樣的軟件包嗎?

    最近使用rt-thread配置一個ROS2,但是是用CubeMX聯(lián)合Clion做的,CubeMX使用的是RT-thread nano包, 請
    發(fā)表于 03-01 06:00

    RT-Thread Nano在調(diào)用rt_thread_control時,修改線程優(yōu)先級一直不執(zhí)行的原因?如何解決?

    RT-Thread Nano在調(diào)用rt_thread_control時,修改線程優(yōu)先級一直不執(zhí)行
    發(fā)表于 02-23 07:32

    RT-Thread Nano入門:串口接收與消息隊列

    本文主要介紹怎么用RT-Thread Nano的消息隊列方式實現(xiàn)串口數(shù)據(jù)接收,結(jié)合串口接收中斷和空閑中斷,接收上位機發(fā)來的一幀數(shù)據(jù)。
    的頭像 發(fā)表于 11-22 11:07 ?3699次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入門:串口接收與消息隊列

    RT-Thread Nano入門:獨立看門狗(IWDT)

    本文主要介紹怎么用RT-Thread Nano實現(xiàn)獨立看門狗IWDT驅(qū)動,創(chuàng)建一個喂狗線程,實現(xiàn)定時喂狗功能。
    的頭像 發(fā)表于 11-22 11:04 ?2091次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入門:獨立看門狗(IWDT)