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

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

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

RT-Thread低功耗的適配和應(yīng)用

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2022-08-03 10:29 ? 次閱讀

近期 RT-Thread 工程師完成了基于瑞薩CPK-RA2L1 開(kāi)發(fā)板的BSP適配,支持了GPIO、UART、I2C、SPI、ADC、DAC、PWM、CAN、on-chip Flash、Watchdog、RTC等外設(shè)驅(qū)動(dòng),并在瑞薩工程師支持下完成電源組件(低功耗LPM)適配,經(jīng)實(shí)際測(cè)量,芯片在Software Standby階段可達(dá)到的最低平均電流約為0.696uA,本篇筆記記錄低功耗的適配和應(yīng)用。

af36e894-1250-11ed-ba43-dac502259ad0.png

可通過(guò)以下鏈接查看RA MCU BSP:

https://github.com/RT-Thread/rt-thread/tree/master/bsp/renesas

瑞薩 RA 系列 MCU 開(kāi)發(fā)板的 BSP 制作教程

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/RA%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B

在開(kāi)始介紹低功耗前,先了解一下 RA2L1 MCU 產(chǎn)品群關(guān)鍵特性

  • 48MHz Arm Cortex-M23 CPU內(nèi)核

  • 支持1.6V-5.5V寬范圍工作電壓

  • 超低功耗,提供64μA/MHz工作電流和250nA軟件待機(jī)電流,快速喚醒時(shí)間小于5μs

  • 采用瑞薩110nm低功耗工藝,用于運(yùn)行和睡眠/待機(jī)模式,并且專(zhuān)門(mén)為電池驅(qū)動(dòng)應(yīng)用設(shè)計(jì)了特殊掉電模式

  • 靈活的供電模式可實(shí)現(xiàn)更低的平均功耗,以滿(mǎn)足多種應(yīng)用需求

  • 集成了新一代創(chuàng)新型電容式觸摸感應(yīng)單元,無(wú)需外部元器件,降低BOM成本

  • 通過(guò)高精度(1.0%)高速振蕩器、溫度傳感器和多種供電接口端口等片上外圍功能降低系統(tǒng)成本

  • 后臺(tái)運(yùn)行的數(shù)據(jù)閃存,支持一百萬(wàn)次擦除/編程循環(huán)

  • 采用LQFP封裝,產(chǎn)品涵蓋48引腳至100引腳封裝

低功耗基礎(chǔ)

低功耗的本質(zhì)是系統(tǒng)空閑時(shí) CPU 停止工作,中斷或事件喚醒后繼續(xù)工作。在 RTOS 中,通常包含一個(gè) IDLE 任務(wù),該任務(wù)的優(yōu)先級(jí)最低且一直保持就緒狀態(tài),當(dāng)高優(yōu)先級(jí)任務(wù)未就緒時(shí),OS 執(zhí)行 IDLE 任務(wù)。一般地,未進(jìn)行低功耗處理時(shí),CPU 在 IDLE 任務(wù)中循環(huán)執(zhí)行空指令。RT-Thread 的電源管理組件在 IDLE 任務(wù)中,通過(guò)對(duì) CPU 、時(shí)鐘和設(shè)備等進(jìn)行管理,從而有效降低系統(tǒng)的功耗。

af5780a4-1250-11ed-ba43-dac502259ad0.png

在上圖所示,當(dāng)高優(yōu)先級(jí)任務(wù)運(yùn)行結(jié)束或被掛起時(shí),系統(tǒng)將進(jìn)入 IDLE 任務(wù)中。在 IDLE 任務(wù)執(zhí)行后,它將判斷系統(tǒng)是否可以進(jìn)入到休眠狀態(tài)(以節(jié)省功耗)。如果可以進(jìn)入休眠, 將根據(jù)芯片情況關(guān)閉部分硬件模塊,OS Tick 也非常有可能進(jìn)入暫停狀態(tài)。此時(shí)電源管理框架會(huì)根據(jù)系統(tǒng)定時(shí)器情況,計(jì)算出下一個(gè)超時(shí)時(shí)間點(diǎn),并設(shè)置低功耗定時(shí)器,讓設(shè)備能夠在這個(gè)時(shí)刻點(diǎn)喚醒,并進(jìn)行后續(xù)的工作。當(dāng)系統(tǒng)被(低功耗定時(shí)器中斷或其他喚醒中斷源)喚醒后,系統(tǒng)也需要知道睡眠時(shí)間長(zhǎng)度是多少,并對(duì)OS Tick 進(jìn)行補(bǔ)償,讓系統(tǒng)的OS tick值調(diào)整為一個(gè)正確的值。

PM組件

PM組件是RT-Thread系統(tǒng)中針對(duì)電源管理而設(shè)計(jì)的基礎(chǔ)功能組件, 組件采用分層設(shè)計(jì)思想,分離架構(gòu)和芯片相關(guān)的部分,提取公共部分作為核心。支持多種運(yùn)行模式和休眠模式的管理切換,以及低功耗定時(shí)器的管理。

PM 組件有以下特點(diǎn):

  • PM 組件是基于模式來(lái)管理功耗

  • PM 組件可以根據(jù)模式自動(dòng)更新設(shè)備的頻率配置,確保在不同的運(yùn)行模式都可以正常工作

  • PM 組件可以根據(jù)模式自動(dòng)管理設(shè)備的掛起和恢復(fù),確保在不同的休眠模式下可以正確的掛起和恢復(fù)

  • PM 組件支持可選的休眠時(shí)間補(bǔ)償,讓依賴(lài) OS Tick 的應(yīng)用可以透明使用

  • PM 組件向上層提供設(shè)備接口,如果使用了設(shè)備文件系統(tǒng)組件,那么也可以用文件系統(tǒng)接口來(lái)訪問(wèn)

PM組件支持的休眠模式有

af701812-1250-11ed-ba43-dac502259ad0.png

RA系列LPM功能

RA2 MCU支持的LPM類(lèi)型有:

  • Sleep mode

  • Software Standby mode

  • Snooze mode

af9b87f4-1250-11ed-ba43-dac502259ad0.png

低功耗模式轉(zhuǎn)換和觸發(fā)源如圖所示:

afd444b8-1250-11ed-ba43-dac502259ad0.png

不同模式間的切換如圖所示,從圖中也可以看出三種模式的功耗關(guān)系是Sleep>Snooze>Standby。

RA2芯片的休眠模式對(duì)應(yīng)PM組件的模式關(guān)系:

afeffaa0-1250-11ed-ba43-dac502259ad0.png

配置LPM功能

要使用RA2系列芯片的LPM功能,需要進(jìn)入bsp enesas a2l1-cpk目錄。

  • 在menuconfig中使能LPM驅(qū)動(dòng),并勾選要開(kāi)啟的休眠模式,然后保存配置,生成MDK5工程。

afff65a8-1250-11ed-ba43-dac502259ad0.png

  • 打開(kāi)PM組件和驅(qū)動(dòng)后,需要增加idle的線程棧大小,可改為1024。

    b015a8ea-1250-11ed-ba43-dac502259ad0.png

  • 打開(kāi)生成的MDK5工程project.uvprojx,然后打開(kāi)FSP配置工具添加LPM相關(guān)配置。下圖是需要添加的stack,包括三種LPM模式的配置以及低功耗定時(shí)器AGT1。

b0268ee4-1250-11ed-ba43-dac502259ad0.png

  • 創(chuàng)建LPM如下圖所示新建r_lpm,需要根據(jù)使用的模式進(jìn)行配置且不同模式要?jiǎng)?chuàng)建不同的r_lpm。下面將分別介紹三種不同模式的配置,創(chuàng)建步驟就不再贅述。

b047ac0a-1250-11ed-ba43-dac502259ad0.png

Sleep mode休眠模式

創(chuàng)建出r_lpm后需要修改Name和Low Power Mode這兩個(gè)配置項(xiàng)。Name需要改為g_lpm_sleep,因?yàn)樵隍?qū)動(dòng)文件中已經(jīng)定義了sleep模式對(duì)應(yīng)的stack名稱(chēng)。Low Power Mode選擇Sleep mode即可。

b0719010-1250-11ed-ba43-dac502259ad0.png

Standby mode軟件待機(jī)模式

Name需要改為g_lpm_sw_standby。Low Power Mode選擇Software Standby mode即可。

另外在此模式下還需要配置喚醒MCU的中斷源,因?yàn)闀?huì)使用到AGT1做為低功耗定時(shí)器所以AGT1的中斷需要勾選。如果在應(yīng)用中還需要其他中斷源在此模式下喚醒MCU,則勾選對(duì)應(yīng)選項(xiàng)即可。

b0966a3e-1250-11ed-ba43-dac502259ad0.png

Snooze mode小睡模式

Name需要改為g_lpm_sw_standby_with_snooze。Low Power Mode選擇Snooze mode即可。

另外在此模式下同樣要配置喚醒MCU的中斷源,因?yàn)闀?huì)使用到AGT1做為低功耗定時(shí)器所以AGT1的中斷需要勾選。如果在應(yīng)用中還需要其他中斷源在此模式下喚醒MCU,則勾選對(duì)應(yīng)選項(xiàng)即可。

b0b436a4-1250-11ed-ba43-dac502259ad0.png

AGT1低功耗定時(shí)器

在驅(qū)動(dòng)中使用了MCU的AGT1做為PM組件的低功耗定時(shí)器,用于在休眠狀態(tài)下的系統(tǒng)時(shí)鐘補(bǔ)償。

b0d11742-1250-11ed-ba43-dac502259ad0.png

完成上述配置步驟就已經(jīng)把LPM低功耗模式的相關(guān)配置做完了。然后再根據(jù)應(yīng)用要實(shí)現(xiàn)的功能配置其他外設(shè)。

低功耗DEMO

上文介紹了在RT-Thread的RA2L1上怎么配置LPM的不同模式,接下來(lái)就用一個(gè)小DEMO來(lái)驗(yàn)證下MCU在各種模式下的工作情況。

低功耗DEMO要實(shí)現(xiàn)的功能是,在CPK-RA2L1開(kāi)發(fā)板上用S1按鈕切換不同的低功耗模式,并在msh中打印出模式切換的提示信息。要實(shí)現(xiàn)這個(gè)功能需要在剛才的基礎(chǔ)上添加一個(gè)低功耗的喚醒源。

添加配置

  • 創(chuàng)建IRQ中斷,IRQ中斷選擇通道3,詳細(xì)配置如下。

    b0ef415e-1250-11ed-ba43-dac502259ad0.png

    b1039686-1250-11ed-ba43-dac502259ad0.png

b12c1188-1250-11ed-ba43-dac502259ad0.png

  • 在剛才的Snooze和Standby模式的配置里添加IRQ3的喚醒源

    b147c8c4-1250-11ed-ba43-dac502259ad0.png

    b1683d16-1250-11ed-ba43-dac502259ad0.png

    b17a32aa-1250-11ed-ba43-dac502259ad0.png

  • 然后保存并生成配置代碼。

添加測(cè)試代碼

#include 
#ifdef BSP_USING_LPM#include #include #include 
#define WAKEUP_APP_THREAD_STACK_SIZE        512#define WAKEUP_APP__THREAD_PRIORITY         RT_THREAD_PRIORITY_MAX / 3#define WAKEUP_EVENT_BUTTON                 (1 << 0)
static rt_event_t wakeup_event;
#define USER_INPUT  "P004"#define LED2_PIN    "P501" /* Onboard LED pins */
void rt_lptimer_init(rt_lptimer_t  timer,                   const char *name,                   void (*timeout)(void *parameter),                   void       *parameter,                   rt_tick_t   time,                   rt_uint8_t  flag);
rt_err_t rt_lptimer_detach(rt_lptimer_t timer);rt_err_t rt_lptimer_start(rt_lptimer_t timer);rt_err_t rt_lptimer_stop(rt_lptimer_t timer);
rt_err_t rt_lptimer_control(rt_lptimer_t timer, int cmd, void *arg);
static struct rt_lptimer lptimer; 
static void timeout_cb(void *parameter){    rt_interrupt_enter();    rt_kprintf("
 lptimer callback 
");    rt_interrupt_leave();}
static void lptimer_init(void){    rt_lptimer_init(&lptimer,                    "lpm",                    timeout_cb,                    (void*)&wakeup_event,                    1000,                    RT_TIMER_FLAG_PERIODIC);}
static void lptimer_stop(void){    rt_lptimer_stop(&lptimer);}
static void lptimer_start(void){    rt_lptimer_start(&lptimer);}
static void led_app(void){    static uint8_t key_status = 0x00;    rt_uint32_t led2_pin = rt_pin_get(LED2_PIN);
    rt_pin_write(led2_pin, PIN_HIGH);    switch(key_status%4)    {    case 0:/* IDLE */    lptimer_stop();        rt_pm_release(PM_SLEEP_MODE_NONE);        rt_kprintf("	request:IDLE
");        rt_pm_request(PM_SLEEP_MODE_IDLE);        break;    case 1:/* DEEP */    lptimer_stop();    lptimer_start();        rt_pm_release(PM_SLEEP_MODE_IDLE);        rt_kprintf("	request:DEEP
");        rt_pm_request(PM_SLEEP_MODE_DEEP);        break;    case 2:/* STANDBY */    lptimer_stop();    lptimer_start();        rt_pm_release(PM_SLEEP_MODE_DEEP);        rt_kprintf("	request:STANDBY
");        rt_pm_request(PM_SLEEP_MODE_STANDBY);        break;    case 3:/* NONE */    lptimer_stop();        rt_pm_release(PM_SLEEP_MODE_STANDBY);        rt_kprintf("	request:NONE
");        rt_pm_request(PM_SLEEP_MODE_NONE);        break;    default:        break;    }
    key_status++;    rt_pin_write(led2_pin, PIN_LOW);}
static void wakeup_callback(void* p){    rt_event_send(wakeup_event, WAKEUP_EVENT_BUTTON);}
void wakeup_sample(void){    /* init */    rt_uint32_t pin = rt_pin_get(USER_INPUT);    rt_kprintf("
 pin number : 0x%04X 
", pin);    rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, wakeup_callback, RT_NULL);    if (RT_EOK != err)    {        rt_kprintf("
 attach irq failed. 
");    }    err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);    if (RT_EOK != err)    {        rt_kprintf("
 enable irq failed. 
");    }}
static void wakeup_init(void){    wakeup_event = rt_event_create("wakup", RT_IPC_FLAG_FIFO);    RT_ASSERT(wakeup_event != RT_NULL);    wakeup_sample();}
static void pm_mode_init(void){    rt_pm_release_all(RT_PM_DEFAULT_SLEEP_MODE);    rt_pm_request(PM_SLEEP_MODE_NONE);}
void pm_test_entry(void* para){    /* 喚醒回調(diào)函數(shù)初始化 */  wakeup_init();
    /* 電源管理初始化 */    pm_mode_init();
  lptimer_init();
    while (1)    {        /* 等待喚醒事件 */        if (rt_event_recv(wakeup_event,                            WAKEUP_EVENT_BUTTON,                            RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,                            RT_WAITING_FOREVER, RT_NULL) == RT_EOK)        {            led_app();        }    }}
int pm_test(void){
    rt_thread_t tid = rt_thread_create(            "pmtest",pm_test_entry,RT_NULL,512,10,10);    if(tid)        rt_thread_startup(tid);
    return 0;}MSH_CMD_EXPORT(pm_test, pm_test);// INIT_APP_EXPORT(pm_test);#endif

將DEMO代碼加入到工程中,可以直接添加到hal_entry.c或新建一個(gè)源文件。

測(cè)試驗(yàn)證

然后編譯下載。開(kāi)發(fā)板連接串口工具,輸入pm_test命令啟動(dòng)測(cè)試DEMO。

按下S1按鈕切換工作模式,在DEEP、STANDBY模式下會(huì)啟動(dòng)低功耗定時(shí)器,當(dāng)定時(shí)喚醒后會(huì)打印出回調(diào)接口的提示信息。

b19b43a0-1250-11ed-ba43-dac502259ad0.png

經(jīng)測(cè)試:

1)串口通中輸入“pm_test”,觀測(cè)到電流在8.6mA5.8mA之間變化。

2)按下S1后,串口通中打印信息為“requestIDLE”,此時(shí)電流約為2.2mA。

3)再次按下S1后,串口通中打印信息為“requestDEEP”,此時(shí)電流約為1593uA,并間隔產(chǎn)生lptimer中斷。

4)再次按下S1后,串口通中打印信息為“requestSTANDBY”,此時(shí)電流約為2.4uA,并間隔產(chǎn)生lptimer中斷。

5)再次按下S1后,串口通中打印信息為“requestNONE”,恢復(fù)為(1)的電流值,然后可循環(huán)執(zhí)行此流程。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349335
  • 瑞薩
    +關(guān)注

    關(guān)注

    33

    文章

    22274

    瀏覽量

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

    關(guān)注

    31

    文章

    1249

    瀏覽量

    39721

原文標(biāo)題:基于瑞薩 RA2L1 MCU 的RT-Thread 低功耗應(yīng)用筆記

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread記錄(二、RT-Thread內(nèi)核啟動(dòng)流程)

    在前面我們RT-Thread Studio工程基礎(chǔ)之上講一講RT-Thread內(nèi)核啟動(dòng)流程.
    的頭像 發(fā)表于 06-20 00:30 ?4877次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(二、<b class='flag-5'>RT-Thread</b>內(nèi)核啟動(dòng)流程)

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開(kāi)發(fā)組(2015-03-31)。RT-Thread做為國(guó)內(nèi)有較大影響力的開(kāi)源實(shí)時(shí)操作系統(tǒng),本文是RT-Thread實(shí)時(shí)操作系統(tǒng)的編程指南
    發(fā)表于 11-26 16:06 ?0次下載

    RT-Thread用戶(hù)手冊(cè)

    RT-Thread用戶(hù)手冊(cè)——本書(shū)是RT-Thread的編程手冊(cè),用于指導(dǎo)在RT-Thread實(shí)時(shí)操作系統(tǒng)環(huán)境下如何進(jìn)行編 程。
    發(fā)表于 11-26 16:16 ?0次下載

    STM32超低功耗之移植 RT-Thread PM 組件原理分析

    一, 認(rèn)識(shí) PM 組件在上一篇的文章中,介紹了如何移植 RT-Thread PM 組件,PM 組件的作用是通過(guò) RTOS 來(lái)統(tǒng)一的管理,超低功耗是一個(gè)細(xì)致的工作,所以在使用的時(shí)候必須要知道 PM
    發(fā)表于 12-31 18:59 ?2次下載
    STM32超<b class='flag-5'>低功耗</b>之移植 <b class='flag-5'>RT-Thread</b> PM 組件原理分析

    RT-Thread全球技術(shù)大會(huì):螢石研發(fā)團(tuán)隊(duì)使用RT-Thread的技術(shù)挑戰(zhàn)

    RT-Thread全球技術(shù)大會(huì):研發(fā)團(tuán)隊(duì)使用RT-Thread的技術(shù)挑戰(zhàn) ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 11:36 ?1248次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):螢石研發(fā)團(tuán)隊(duì)使用<b class='flag-5'>RT-Thread</b>的技術(shù)挑戰(zhàn)

    RT-Thread全球技術(shù)大會(huì):Kconfig在RT-Thread中的工作機(jī)制

    RT-Thread全球技術(shù)大會(huì):Kconfig在RT-Thread中的工作機(jī)制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:49 ?1452次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):Kconfig在<b class='flag-5'>RT-Thread</b>中的工作機(jī)制

    RT-Thread全球技術(shù)大會(huì):關(guān)于瑞薩RA2L1-CPK低功耗CPU演示

    RT-Thread全球技術(shù)大會(huì):關(guān)于瑞薩RA2L1-CPK低功耗CPU演示 ? ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發(fā)表于 05-27 15:23 ?1311次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):關(guān)于瑞薩RA2L1-CPK<b class='flag-5'>低功耗</b>CPU演示

    RT-Thread全球技術(shù)大會(huì):在RT-Thread上編寫(xiě)測(cè)試用例

    RT-Thread全球技術(shù)大會(huì):在RT-Thread上編寫(xiě)測(cè)試用例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 16:28 ?1410次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):在<b class='flag-5'>RT-Thread</b>上編寫(xiě)測(cè)試用例

    RT-Thread全球技術(shù)大會(huì):RT-Thread測(cè)試用例集合案例

    RT-Thread全球技術(shù)大會(huì):RT-Thread測(cè)試用例集合案例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 16:34 ?2012次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RT-Thread</b>測(cè)試用例集合案例

    RT-Thread學(xué)習(xí)筆記 RT-Thread的架構(gòu)概述

    RT-Thread 簡(jiǎn)介 作為一名 RTOS 的初學(xué)者,也許你對(duì) RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會(huì)逐漸發(fā)現(xiàn) RT-Thread 的魅力和它相較于其他同類(lèi)型 RTOS
    的頭像 發(fā)表于 07-09 11:27 ?4387次閱讀
    <b class='flag-5'>RT-Thread</b>學(xué)習(xí)筆記 <b class='flag-5'>RT-Thread</b>的架構(gòu)概述

    RT-Thread文檔_RT-Thread 簡(jiǎn)介

    RT-Thread文檔_RT-Thread 簡(jiǎn)介
    發(fā)表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡(jiǎn)介

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發(fā)表于 02-22 18:23 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    基于RT-Thread Studio學(xué)習(xí)

    前期準(zhǔn)備:從官網(wǎng)下載 RT-Thread Studio,弄個(gè)賬號(hào)登陸,開(kāi)啟rt-thread學(xué)習(xí)之旅。
    的頭像 發(fā)表于 05-15 11:00 ?3641次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio學(xué)習(xí)

    RT-Thread v5.0.2 發(fā)布

    RT-Thread 代碼倉(cāng)庫(kù)地址: ●? https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本發(fā)布日志詳情: ●? htt
    的頭像 發(fā)表于 10-10 18:45 ?1298次閱讀
    <b class='flag-5'>RT-Thread</b> v5.0.2 發(fā)布