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移植到BL602的方法和關(guān)鍵步驟

麥克泰技術(shù) ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 2023-11-07 11:11 ? 次閱讀

隨著科技的發(fā)展,人們對(duì)嵌入式設(shè)備的性能和運(yùn)行效率要求越來(lái)越苛刻,傳統(tǒng)嵌入式設(shè)備存在非常單一的流向、極低的CPU利用率等缺點(diǎn),實(shí)時(shí)性對(duì)于汽車、航天領(lǐng)域至關(guān)重要,可能會(huì)因?yàn)?a target="_blank">處理器沒有及時(shí)響應(yīng)任務(wù)而造成極大的損失。針對(duì)這一不足,提出將嵌入式操作系統(tǒng)移植到微處理器中以提高運(yùn)行效率和穩(wěn)定性。RT Thread作為一款實(shí)時(shí)、搶占式多任務(wù)操作系統(tǒng),在智能家居、航天、安防、可穿戴電子產(chǎn)品方面應(yīng)用廣泛,勢(shì)必會(huì)成為未來(lái)AIoT(人工智能物聯(lián)網(wǎng))平臺(tái)主流的操作系統(tǒng)。

為了搶先一步占領(lǐng)市場(chǎng),將RT Thread移植到各大廠商的芯片上具有極其重要的現(xiàn)實(shí)意義,但是目前并沒有將RT Thread移植到BL602的成熟方案,并且移植具有一定的難度。針對(duì)這一現(xiàn)象,本文提出了將RT Thread移植到BL602的方法和關(guān)鍵步驟。

1 軟硬件環(huán)境概述

1.1 硬件概述

本文所采用的BL602 芯片使用RISCV 架構(gòu)的CPU,其超低功耗的電源管理單元可用于高性能應(yīng)用開發(fā),采用外部時(shí)鐘源可以獲得高精度和穩(wěn)定的時(shí)鐘,另外還可以選配閃存(Flash),高速緩存可以加快CPU 訪問(wèn)存儲(chǔ)器的速率,大大提高CPU 利用率和程序執(zhí)行速率。

1.2 軟件準(zhǔn)備

本文采用RT Thread 3.1.1標(biāo)準(zhǔn)版本的源碼進(jìn)行裁剪移植,為了避免從頭開始編寫代碼,提前在博流官網(wǎng)下載bl_mcu_sdk代碼用作參考。

2 RT Thread工程框架啟動(dòng)原理

2.1 總體啟動(dòng)流程

整個(gè)工程啟動(dòng)流程分為BL602芯片啟動(dòng)和RT Thread實(shí)時(shí)內(nèi)核啟動(dòng)。該過(guò)程與U boot啟動(dòng)過(guò)程類似。對(duì)于前者,芯片上電后會(huì)首先從start.S匯編代碼處開始執(zhí)行,最后通過(guò)調(diào)用entry()進(jìn)入應(yīng)用程序入口,進(jìn)而調(diào)用內(nèi)核啟動(dòng)函數(shù)rtthread_startup()將系統(tǒng)控制權(quán)轉(zhuǎn)移給RT Thread,具體流程如圖1所示。

f832087c-7d1a-11ee-939d-92fbcf53809c.jpg

圖1 總體啟動(dòng)流程

2.2 RT Thread實(shí)時(shí)內(nèi)核啟動(dòng)流程

RT Thread實(shí)時(shí)內(nèi)核啟動(dòng)主要由rtthread_startup()函數(shù)完成,主要進(jìn)行板級(jí)初始化、打印RT Thread版本信息、定時(shí)器初始化、調(diào)度器初始化、應(yīng)用程序初始化、定時(shí)器線程初始化、空閑線程初始化、調(diào)度器啟動(dòng)。

2.2.1 板級(jí)初始化

板級(jí)初始化過(guò)程就是通過(guò)調(diào)用rt_hw_board_init()函數(shù)實(shí)現(xiàn),對(duì)于不同型號(hào)的芯片,該函數(shù)所要處理的任務(wù)大同小異,一般都是初始化芯片引腳和串口、配置系統(tǒng)時(shí)鐘、初始化堆空間。對(duì)于BL602芯片,因其內(nèi)部自帶了一個(gè)64位的定時(shí)器mtimer,將會(huì)對(duì)該定時(shí)器進(jìn)行初始化以設(shè)置系統(tǒng)定時(shí)時(shí)間,其作用與STM32芯片中的嘀嗒時(shí)鐘類似。

2.2.2 定時(shí)器初始化

調(diào)用rt_system_timer_init()函數(shù)初始化的是硬件中斷模式下的定時(shí)器,RT Thread的硬件定時(shí)器由一個(gè)靜態(tài)的雙向鏈表構(gòu)成,剛開始初始化定時(shí)器隊(duì)列為空,即L>next=L >pre=L,具體結(jié)構(gòu)如圖2所示。

f848afaa-7d1a-11ee-939d-92fbcf53809c.jpg

圖2 初始化后的定時(shí)器結(jié)構(gòu)

2.2.3 調(diào)度器初始化

調(diào)度器用于調(diào)度線程運(yùn)行,在當(dāng)前系統(tǒng)的就緒隊(duì)列中找到優(yōu)先級(jí)最高的就緒線程來(lái)執(zhí)行,RTThread中線程一共有32個(gè)等級(jí)的優(yōu)先級(jí),數(shù)值越大,優(yōu)先級(jí)越低。調(diào)度器初始化主要對(duì)線程優(yōu)先隊(duì)列進(jìn)行初始化為NULL,設(shè)置當(dāng)前線程優(yōu)先級(jí):RT_THREAD_PRIORITY_MAX-1=31為最低的優(yōu)先級(jí),初始化線程控制塊指針為NULL,初始化線程就緒優(yōu)先級(jí)組為0。

2.2.4 應(yīng)用程序初始化

通過(guò)調(diào)用rt_application_init()來(lái)動(dòng)態(tài)創(chuàng)建main主線程,在線程函數(shù)main_thread_entry()調(diào)用main(),從而進(jìn)入用戶主函數(shù)。不過(guò)此時(shí)線程并沒有啟動(dòng),而是根據(jù)優(yōu)先級(jí)插入到了線程就緒優(yōu)先隊(duì)列指定位置,等到調(diào)度器啟動(dòng)后才會(huì)真正運(yùn)行主線程。

2.2.5 調(diào)度器啟動(dòng)

通過(guò)調(diào)用rt_system_scheduler_start()啟動(dòng)調(diào)度器,main線程、idle線程才會(huì)真正被調(diào)度,系統(tǒng)會(huì)從線程就緒隊(duì)列中選擇優(yōu)先級(jí)最高的一個(gè)線程并執(zhí)行。如果系統(tǒng)的就緒隊(duì)列中還有線程1(優(yōu)先級(jí)為7)、線程2(優(yōu)先級(jí)為10)、線程3(優(yōu)先級(jí)為7)、tshell(優(yōu)先級(jí)為20)四個(gè)線程。當(dāng)調(diào)度器啟動(dòng)后,系統(tǒng)中各個(gè)線程指向關(guān)系如圖3所示。

f8565c22-7d1a-11ee-939d-92fbcf53809c.jpg

圖3 線程指向關(guān)系

3 RT Thread移植過(guò)程

RT Thread移植就是讓RTThread實(shí)時(shí)操作系統(tǒng)能夠在BL602芯片上跑起來(lái),并且可以實(shí)現(xiàn)任務(wù)管理、任務(wù)創(chuàng)建、任務(wù)調(diào)度等功能。移植過(guò)程主要分為以下幾個(gè)部分:啟動(dòng)入口、系統(tǒng)時(shí)鐘配置、mtimer定時(shí)器配置、注冊(cè)中斷回調(diào)函數(shù)、實(shí)現(xiàn)Finsh功能、rt_kprintf實(shí)現(xiàn)、任務(wù)創(chuàng)建和任務(wù)調(diào)度。下面將對(duì)具體步驟進(jìn)行詳細(xì)介紹。

3.1 添加單板BL602和修改源碼目錄

為了移植最小內(nèi)核到BL602芯片上,有必要對(duì)RT Thread源碼進(jìn)行裁剪。保留src、include目錄文件不變,components目錄下面只保留finsh文件夾,bsp目錄下添加BL602單板目錄,在libcpu/risc_v目錄下新建一個(gè)bl602文件夾,向libcpu/risc_v/bl602中添加對(duì)應(yīng)的 interrupt_gcc.S、cpuport.c、context_gcc.S,這幾個(gè)匯編和C文件可以從其他RISC V 架構(gòu)下的芯片中復(fù)制,CPU 架構(gòu)移植主要實(shí)現(xiàn)如下功能:中斷使能/失能、任務(wù)切換、線程棧初始化、中斷處理等。把bl_mcu_sdk中的drivers/soc/bl602/startup/start.S 啟動(dòng)文件復(fù)制到libcpu/risc_v/bl602目錄下,作為芯片上電啟動(dòng)文件。rtconfig.h頭文件中定義了一些預(yù)編譯宏,只需定義一些基本的宏就行,至此源碼裁剪工作基本完成。

3.2 修改入口函數(shù)

裸機(jī)程序中啟動(dòng)文件start.S中最后幾行匯編指令如下所示(現(xiàn)在需要修改jal main為 jalentry,從而跳轉(zhuǎn)到應(yīng)用程序入口調(diào)用rtthread_startup()啟動(dòng)函數(shù)啟動(dòng)內(nèi)核,至此系統(tǒng)控制權(quán)就轉(zhuǎn)交給了操作系統(tǒng)):

//系統(tǒng)初始化,保存默認(rèn)配置、清除所有中斷

jal SystemInit

/*從ITCM、DTCM、RAM 復(fù)制數(shù)據(jù)到TCM 中,并且清空.bss區(qū)*/

jal start_load

//設(shè)置PDS、HBN時(shí)鐘

jal System_Post_Init

……

//跳轉(zhuǎn)到用戶主程序

jal main 修改為jalentry

3.3 適配板級(jí)初始化函數(shù)

對(duì)開發(fā)板的初始化操作一般都在rt_hw_board_init()接口進(jìn)行,比如系統(tǒng)時(shí)鐘初始化、外設(shè)時(shí)鐘初始化、定時(shí)器初始化、串口初始化、GPIO初始化、堆初始化等。

3.3.1 系統(tǒng)時(shí)鐘初始化

視系統(tǒng)需求,外部晶振時(shí)鐘可選24、32、38.4、40 MHz,可以設(shè)置外部晶振XTAL為40 MHz,配置系統(tǒng)時(shí)鐘為最高的192 MHz。通過(guò)配置clk_cfg0寄存器(地址為0x40000000)的bit[0:3]為1,使能PLLCLK、BCLK、FCLK、HCLK;通過(guò)設(shè)置bit[4:5]都為1,選擇PLL輸出時(shí)鐘為192 MHz;設(shè)置bit[6:7]都為1,選擇root clock來(lái)自RC32M(RC振蕩器頻率為32 MHz);最后選擇PLL 輸出192MHz作為system clock。

3.3.2 外設(shè)時(shí)鐘初始化

首先使能外圍設(shè)備時(shí)鐘,然后再進(jìn)行配置。BL602芯片的外圍設(shè)備時(shí)鐘包括Flash、UARTI2C、GPIO 等,這里只用到了UART 外圍設(shè)備,bl_mcu_sdk在peripheral_clock_init()只需要執(zhí)行兩個(gè)操作:一是使能UART 時(shí)鐘(通過(guò)寫0x4000 0024的第16位為1);二是配置UART時(shí)鐘為160 MHz(通過(guò)配置0x40000008的bit7為選擇時(shí)鐘源,通過(guò)0x4000 0008的bit[0:2]設(shè)置分頻系數(shù)為0,設(shè)置bit4為1使能串口時(shí)鐘)。

3.3.3 配置mtimer定時(shí)器

mtimer定時(shí)器是RISC V 內(nèi)核自帶的一個(gè)64位定時(shí)器,可以通過(guò)配置0x4000 0090寄存器來(lái)使能mtimer時(shí)鐘和選擇時(shí)鐘類型,還可以選擇分頻系數(shù),與STM32芯片里面的嘀嗒時(shí)鐘類似。bl_mcu_sdk的中斷采用vector mode,一共有18個(gè)中斷源,中斷號(hào)0~15為RISCV保留中斷,而mtimer中斷號(hào)是7,UART0中斷號(hào)是(IRQ_NUM_BASE+29),其中IRQ_NUM_BASE為16,可以在rt_hw_board_init()中調(diào)用bflb_mtimer_config(1000000,SysTick_Handler),從而將mtimer中斷號(hào)與中斷服務(wù)函數(shù)SysTick_Handler綁定在一起,假如時(shí)鐘經(jīng)過(guò)分頻以后為 1 MHz,經(jīng)過(guò)以上設(shè)置后,mtimer定時(shí)時(shí)間即為1 s。

3.3.4 串口初始化

主要對(duì)引腳和UART 外設(shè)進(jìn)行初始化,bl_mcu_sdk中有個(gè)函數(shù)已經(jīng)實(shí)現(xiàn)該功能,可以直接在rt_hw_board_init()里調(diào)用console_init(),該函數(shù)里面調(diào)用bflb_gpio_uart_init()實(shí)現(xiàn)了GPIO輸入輸出引腳的初始化以及調(diào)用bflb_uart_init()實(shí)現(xiàn)了uart0初始化。

3.3.5 堆初始化

和其他操作系統(tǒng)不同的是,RT Thread堆空間大小由程序員自定義的一個(gè)靜態(tài)數(shù)組heap_buf[]決定,數(shù)組大小不能超過(guò)SRAM 最大值,然后通過(guò)rt_system_heap_init(begin_addr, end_addr)函數(shù)對(duì)堆空間的起始和終止地址進(jìn)行初始化,此處應(yīng)為heap_buf和(heap_buf + sizeof(heap_buf) 1),并對(duì)begin_addr進(jìn)行向上4字節(jié)對(duì)齊操作,對(duì)end_addr進(jìn)行向下4字節(jié)對(duì)齊操作。在rtconfig.h頭文件中定義RT_USING_HEAP 宏后才能動(dòng)態(tài)創(chuàng)建main主線程,否則只能通過(guò)靜態(tài)方法創(chuàng)建線程。

3.4 實(shí)現(xiàn)rt_kprintf功能

要想實(shí)現(xiàn)RT Thread的打印功能,其實(shí)就是實(shí)現(xiàn)rt_hw_console_output()函數(shù)向串口輸出數(shù)據(jù),BL602參考手冊(cè)里面有兩個(gè)寄存器需要設(shè)置:一個(gè)是uart_fifo_config_1,地址為:0x4000 a084,需要設(shè)置bit[0:5]位用于TX FIFO可用計(jì)數(shù);另外一個(gè)是uart_fifo_wdata,地址為:0x4000a088,用來(lái)將一個(gè)字符寫進(jìn)0x4000 a088地址里,bl_mcu_sdk里面已經(jīng)實(shí)現(xiàn)過(guò)該部分,直接在rt_hw_console_output()里面調(diào)用即可,至此可以通過(guò)串口uart0輸出數(shù)據(jù)。

3.5 移植Finsh

移植Finsh組件,實(shí)現(xiàn)命令行交互功能,首先需要添加Finsh代碼,在rtconfig.h頭文件中定義RT_USING_FINSH以及與Finsh線程相關(guān)的一些宏定義,然后對(duì)接rt_hw_console_getchar()函數(shù)即可,其中獲取字符有兩種方式:采用查詢方式或者中斷方式,建議采用中斷方式獲取字符。

3.5.1 查詢方式

查詢方式下不能使能串口接收中斷,且此方法相較于中斷方式較為簡(jiǎn)單,不過(guò)效率很低,需要對(duì)兩個(gè)寄存器進(jìn)行配置:一個(gè)是uart_fifo_config_1,地址為0x4000 a084,需要設(shè)置bit[8:13]用于RX FIFO 可用計(jì)數(shù);另外一個(gè)是uart_fifo_rdata,地址為0x4000 a08c,用于從0x4000 a08c地址中讀取一個(gè)字符到串口。

3.5.2 中斷方式

采取中斷方式必須使能串口接收中斷,參考BL602數(shù)據(jù)手冊(cè)得知,可以通過(guò)配置uart_int_en寄存器bit3使能串口接收中斷,寄存器地址為0x4000 a02c。中斷方式獲取字符流程如下:定義一個(gè)buffer緩沖區(qū)和一個(gè)信號(hào)量,當(dāng)uart接收產(chǎn)生中斷時(shí),會(huì)在中斷服務(wù)函數(shù)中將讀取到的數(shù)據(jù)緩存到buffer緩沖區(qū),然后釋放信號(hào)量來(lái)通知finsh線程接收數(shù)據(jù),finsh線程將從緩沖區(qū)中讀取數(shù)據(jù)。所以還需要實(shí)現(xiàn)串口接收中斷服務(wù)函數(shù)Uart_IRQHandler,并通過(guò)bflb_irq_attach(45, Uart_IRQHandler)將UART0中斷號(hào)與之綁定在一起,UART0中斷號(hào)為(IRQ_NUM_BASE+29),IRQ_NUM_BASE為16。

4 測(cè)試結(jié)果

操作系統(tǒng)啟動(dòng)后,會(huì)自動(dòng)創(chuàng)建main、idle、tshell線程。下面將在main函數(shù)中動(dòng)態(tài)創(chuàng)建3個(gè)線程,將線程1、3優(yōu)先級(jí)設(shè)置為7,線程2優(yōu)先級(jí)設(shè)置為10,tick都設(shè)置為10,在線程函數(shù)中都同時(shí)延時(shí)1 s,觀察打印出的當(dāng)前線程數(shù)量是否正確以及各個(gè)線程是否按照優(yōu)先級(jí)正確被調(diào)度執(zhí)行。實(shí)驗(yàn)結(jié)果表明,RT Thread操作系統(tǒng)能夠在BL602上穩(wěn)定運(yùn)行,并且可以正常進(jìn)行線程創(chuàng)建和調(diào)度,測(cè)試結(jié)果如圖4所示。

f860cffe-7d1a-11ee-939d-92fbcf53809c.jpg

圖4 測(cè)試結(jié)果

5 結(jié) 語(yǔ)

本文在介紹了RT Thread實(shí)時(shí)操作系統(tǒng)基礎(chǔ)上講解了如何在BL602芯片上成功移植RT Thread實(shí)時(shí)操作系統(tǒng)的方法。最后在BL602上進(jìn)行測(cè)試,可以正常運(yùn)行,為其他RTOS移植到芯片上提供了參考和借鑒。

(本文由《單片機(jī)嵌入式系統(tǒng)應(yīng)用》雜志授權(quán)發(fā)表,原文刊發(fā)在2023年第10期)

審核編輯:湯梓紅
聲明:本文內(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18816

    瀏覽量

    298454
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122731
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2212

    瀏覽量

    81977
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    28011
  • RTThread
    +關(guān)注

    關(guān)注

    7

    文章

    132

    瀏覽量

    40683

原文標(biāo)題:基于BL602的RT Thread移植方法研究

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread最小系統(tǒng)的移植方法

    目標(biāo)為進(jìn)一步研究RT-Thread,掌握系統(tǒng)移植的基本方法
    發(fā)表于 06-02 09:47 ?434次閱讀
    <b class='flag-5'>RT-Thread</b>最小系統(tǒng)的<b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    移植RT-Thread nanoCW32L083

    移植RT-Thread NanoCW32L083開發(fā)板上,并成功運(yùn)行。
    的頭像 發(fā)表于 07-03 09:04 ?2.2w次閱讀
    <b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> nano<b class='flag-5'>到</b>CW32L083

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

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

    從μCOS-ⅡRT-Thread移植方法是什么

    公司項(xiàng)目原先使用μCOS-II,但是μCOS存在商業(yè)使用付費(fèi)問(wèn)題,故而我們轉(zhuǎn)向用國(guó)產(chǎn)開源免費(fèi)RTOS RT-Thread替代,花了一天半的時(shí)間原來(lái)的μCOS代碼移植到了RT-Thread
    發(fā)表于 06-04 04:35

    【博流 BL-HWC-G1 開發(fā)板試用】讓博流 BL602 連接互聯(lián)網(wǎng) —— 使用 BL IoT SDK 通過(guò) Wi-Fi 聯(lián)網(wǎng)發(fā)出 HTTP GET 請(qǐng)求獲取數(shù)據(jù)

    中分享你的嘗試。2. 必要的材料一塊 BL602 的開發(fā)板(本文以 BL-HWC-G1 為例,若使用其它 BL602 的開發(fā)板,步驟可能稍有不同)一根 Type-C USB 線安裝有
    發(fā)表于 11-26 21:02

    RT-Thread移植方法分享

    02_RTT_Thread nano移植一.RT-Thread 移植方法一 源文件拷貝法1.準(zhǔn)備一份裸機(jī)工程2.
    發(fā)表于 02-22 06:20

    基于SIFIVE E24的BL602BL702移植過(guò)程

    已完成 BL602、BL702 的 rt-thread 移植,近期整理后 PR。這兩個(gè)都是基于 SIFIVE E24 的,BSP的話應(yīng)該是無(wú)差別的。
    發(fā)表于 05-31 16:22

    RT-Thread移植AT32平臺(tái)時(shí)的注意事項(xiàng)和步驟

    AT32移植RT-Thread描述了RT-Thread移植AT32平臺(tái)時(shí)的注意事項(xiàng)和
    發(fā)表于 10-24 06:49

    移植RT-Thread的原理與方法

    大家好我是驚覺。是的,失蹤人口回來(lái)了。最近參加了rt-thread的國(guó)產(chǎn)MCU移植活動(dòng),移植rt-thread華大的HC32L196。rt
    的頭像 發(fā)表于 09-17 09:41 ?7477次閱讀

    【國(guó)產(chǎn)MCU移植移植RT-Thread國(guó)產(chǎn)芯片HC32F460PETB

    【國(guó)產(chǎn)MCU移植移植RT-Thread國(guó)產(chǎn)芯片HC32F460PETB
    發(fā)表于 11-23 18:06 ?37次下載
    【國(guó)產(chǎn)MCU<b class='flag-5'>移植</b>】<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>到</b>國(guó)產(chǎn)芯片HC32F460PETB

    【國(guó)產(chǎn)MCU移植移植RT-Thread國(guó)產(chǎn)芯片F(xiàn)M33LC026

    【國(guó)產(chǎn)MCU移植移植RT-Thread國(guó)產(chǎn)芯片F(xiàn)M33LC026
    發(fā)表于 11-30 16:51 ?22次下載
    【國(guó)產(chǎn)MCU<b class='flag-5'>移植</b>】<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>到</b>國(guó)產(chǎn)芯片F(xiàn)M33LC026

    RT-Thread系統(tǒng)移植STM32f103

    RT-Thread系統(tǒng)移植STM32f103
    發(fā)表于 12-09 12:51 ?26次下載
    <b class='flag-5'>RT-Thread</b>系統(tǒng)<b class='flag-5'>移植</b><b class='flag-5'>到</b>STM32f103

    博流BL602/604數(shù)據(jù)手冊(cè)

    博流BL602/604數(shù)據(jù)手冊(cè)
    發(fā)表于 01-13 09:35 ?26次下載

    WebAssembly中的BL602/BL604模擬器使用

    讓我們使用WebAssembly在 Web 瀏覽器中模擬 BL602 / BL604 Rust 固件
    發(fā)表于 03-18 10:11 ?2次下載

    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 介紹與<b class='flag-5'>移植</b>