一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何實(shí)現(xiàn)FreeRTOS在Cortex-M3上的移植?

安芯教育科技 ? 來(lái)源:極術(shù)社區(qū) ? 作者:朱工 ? 2021-01-27 13:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. FreeRTOS下載包的文件結(jié)構(gòu)

在FreeRTOS官方網(wǎng)站可以下載到最新版的FreeRTOS包,我這里使用的是V8.2.3版本。

下載包內(nèi)的總文件數(shù)量多的令人生畏,但文件結(jié)構(gòu)卻很簡(jiǎn)潔?!禙reeRTOS入門指南》一文的第3節(jié)詳細(xì)描述了下載包文件結(jié)構(gòu),我們這里只是簡(jiǎn)單提一下。

下載包根目錄下包含兩個(gè)子目錄:FreeRTOS和FreeRTOS-Plus。其中,F(xiàn)reeRTOS-Plus文件夾中包含一些FreeRTOS+組件和演示例程(組件大都收費(fèi)),我們不對(duì)這個(gè)文件夾下的內(nèi)容多做了解,重點(diǎn)說(shuō)一下FreeRTOS文件夾。

FreeRTOS文件夾下包含兩個(gè)子目錄:Demo和Source。其中,Demo包含演示例程的工程文件,Source包含實(shí)時(shí)操作系統(tǒng)源代碼文件。

FreeRTOS實(shí)時(shí)操作系統(tǒng)內(nèi)核僅包含三個(gè)必要文件,此外還有三個(gè)可選文件。RTOS核心代碼位于三個(gè)源文件中,分別是tasks.c、queue.c和list.c。這三個(gè)文件位于FreeRTOS/Source目錄下,在同一目錄下還有3個(gè)可選的文件,叫做timers.c、event_groups.c和croutine.c,分別用于軟件定時(shí)器、事件組和協(xié)程。

對(duì)于支持的處理器架構(gòu),RTOS需要一些與處理器架構(gòu)相關(guān)的代碼??梢苑Q之為RTOS硬件接口層,它們位于FreeRTOS/Source/Portable/[相應(yīng)編譯器]/[相應(yīng)處理器架構(gòu)]文件夾下。我們這次要移植到Cortex-M3微控制,使用Keil MDK編譯器,所以需要的RTOS硬件接口代碼位于:FreeRTOSSourceportableRVDSARM_CM3文件夾下。

堆棧分配也是屬于硬件接口層(移植層),在FreeRTOS/Source/portable/MemMang文件夾下具有各種類型的堆棧分配方案。這里我們使用heap_1.c提供的堆棧分配方案。關(guān)于FreeRTOS的內(nèi)存管理,后續(xù)《FreeRTOS內(nèi)存管理》一文中會(huì)詳細(xì)介紹FreeRTOS內(nèi)存管理的特性和用法,《FreeRTOS內(nèi)存管理分析》一文會(huì)從源碼級(jí)別分析FreeRTOS內(nèi)存管理的具體實(shí)現(xiàn),不要著急,先放過(guò)它們。

FreeRTOS文件夾下的Demo文件夾中還包括各種演示例程,涉及多種架構(gòu)的處理器以及多種編譯器。FreeRTOS/Demo/Common/Minimal文件夾下的演示例程代碼中,絕大部分對(duì)所有移植硬件接口都是適用的。FreeRTOS/Demo/Common/Full文件夾下的代碼屬于歷史遺留代碼,僅用于PC移植層。

2. 移植前的一些準(zhǔn)備

一塊具有Cortex-M3微處理器的硬件板子,并且保證板子可以正常運(yùn)轉(zhuǎn)。

下載FreeRTOS程序包

下載CMSIS-M3,其實(shí)主要是需要里面的core_cm3.h文件(可以去ARM官方下載,如果你安裝了keil 5或比較新的Keil 4 MDK編譯器,在目錄:KeilARMCMSIS文件夾下也可以找到)

3.移植過(guò)程

3.1 添加RTOS核心代碼

將tasks.c、queue.c和list.c這三個(gè)內(nèi)核代碼加入工程,將port.c和heap_1.c這兩個(gè)與處理器相關(guān)代碼加入工程。port.c位于FreeRTOSSourceportableRVDSARM_CM3文件夾下,heap_1.c位于FreeRTOS/Source/portable/MemMang文件夾下。

3.2 添加頭文件路徑

。..FreeRTOSSourceportableRVDSARM_CM3

…FreeRTOSSourceinclude

3.3 編寫FreeRTOSConfig.h文件

對(duì)于剛接觸FreeRTOS的用戶來(lái)說(shuō),最簡(jiǎn)單方法是找一個(gè)類似的Demo工程,復(fù)制該工程下的FreeRTOSConfig.h文件,在這個(gè)基礎(chǔ)上進(jìn)行修改。詳細(xì)的配置說(shuō)明將在后續(xù)《FreeRTOS內(nèi)核配置說(shuō)明》一文中給出,這里依然不必糾結(jié)。

3.4 編寫一些鉤子函數(shù)

如果你在FreeRTOSConfig.h中設(shè)置了configUSE_TICK_HOOK=1,則必須編寫voidvApplicationTickHook( void )函數(shù)。該函數(shù)利用時(shí)間片中斷,可以很方便的實(shí)現(xiàn)一個(gè)定時(shí)器功能。詳見(jiàn)后續(xù)文章《FreeRTOS內(nèi)核配置說(shuō)明》有關(guān)宏configUSE_TICK_HOOK一節(jié)。 如果你在FreeRTOSConfig.h中設(shè)置了configCHECK_FOR_STACK_OVERFLOW=1或=2,則必須編寫voidvApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName )函數(shù),該函數(shù)用于檢測(cè)堆棧溢出,詳見(jiàn)后續(xù)文章《FreeRTOS內(nèi)核配置說(shuō)明》有關(guān)宏configCHECK_FOR_STACK_OVERFLOW一節(jié)。

3.5 檢查硬件

為了驗(yàn)證你的硬件板子是否可靠的工作,首先編寫一個(gè)小程序片,比如閃爍一個(gè)LED燈或者發(fā)送一個(gè)字符等等,我們這里使用UART發(fā)送一個(gè)字符。代碼如下所示(假設(shè)你已經(jīng)配置好了啟動(dòng)代碼,并正確配置了UART):

#include“task.h” #include“queue.h” #include“l(fā)ist.h” #include“portable.h” #include“debug.h” int main(void) { init_rtos_debug(); //初始化調(diào)試串口 MAP_UARTCharPut(‘A’); //發(fā)送一個(gè)字符 while(1); } 如果硬件可以正常發(fā)送字符,說(shuō)明硬件以及啟動(dòng)代碼OK,可以進(jìn)行下一步。

3.6 掛接中斷

在Cortex-M3硬件下,F(xiàn)reeRTOS使用SysTick作為系統(tǒng)節(jié)拍時(shí)鐘,使用SVC和PendSVC進(jìn)行上下文切換。異常中斷服務(wù)代碼位于port.c文件中,F(xiàn)reeRTOS的作者已經(jīng)為各種架構(gòu)的CPU寫好了這些代碼,可以直接拿來(lái)用,需要用戶做的,僅僅是將這些異常中斷入口地址掛接到啟動(dòng)代碼中。 在startup.s中,使用IMPORT關(guān)鍵字聲明要掛接的異常中斷服務(wù)函數(shù)名,然后將:

DCD SVC_Handler 換成: DCD vPortSVCHandler DCD PendSV_Handler 換成: DCD xPortPendSVHandler DCD SysTick_Handler 換成: DCD xPortSysTickHandler

3.7 建立第一個(gè)任務(wù)Task

在步驟3.5中,我們?yōu)榱藴y(cè)試硬件是是否能夠工作,編寫了一個(gè)發(fā)送字符的小函數(shù),這里我們將把這個(gè)小函數(shù)作為我們第一個(gè)任務(wù)要執(zhí)行的主要代碼:每隔1秒鐘,發(fā)送一個(gè)字符。代碼如下所示:

voidvTask(void *pvParameters) { while(1) { MAP_UARTCharPut(0x31); vTaskDelay(1000/portTICK_RATE_MS); } } FreeRTOS的任務(wù)以及編寫格式將在后續(xù)文章《FreeRTOS任務(wù)概述》一文中詳述,這里只是一個(gè)很簡(jiǎn)單的任務(wù),先有有大體印象。這里面有一個(gè)API函數(shù)vTaskDelay(),這個(gè)函數(shù)用于延時(shí),具體用法將在后續(xù)文章《FreeRTOS任務(wù)控制》一文中詳細(xì)介紹,延時(shí)函數(shù)代碼級(jí)分析將在《FreeRTOS高級(jí)篇10---系統(tǒng)節(jié)拍時(shí)鐘分析》。這里不必在意太多的未知情況,因?yàn)楹竺鏁?huì)一點(diǎn)點(diǎn)將這些未知空間探索一遍的。

3.8 設(shè)置節(jié)拍時(shí)鐘

這里我們使用SysTick定時(shí)器作為系統(tǒng)的節(jié)拍時(shí)鐘,設(shè)定每隔10ms產(chǎn)生一次節(jié)拍中斷。由于FreeRTOS對(duì)移植做了非常多的工作,以至于我們只需要在FreeRTOSConfig.h中配置好以下兩個(gè)宏定義即可:

****configCPU_CLOCK_HZ (/*你的硬件平臺(tái)CPU系統(tǒng)時(shí)鐘,F(xiàn)cclk*/) configTICK_RATE_HZ ((portTickType)100) 第一個(gè)宏定義CPU系統(tǒng)時(shí)鐘,也就是CPU執(zhí)行時(shí)的頻率。第二個(gè)宏定義FreeRTOS的時(shí)間片頻率,這里定義為100,表明RTOS一秒鐘可以切換100次任務(wù),也就是每個(gè)時(shí)間片為10ms。 在prot.c中,函數(shù)vPortSetupTimerInterrupt()設(shè)置節(jié)拍時(shí)鐘。該函數(shù)根據(jù)上面的兩個(gè)宏定義的參數(shù),計(jì)算SysTick定時(shí)器的重裝載數(shù)值寄存器,然后設(shè)置SysTick定時(shí)器的控制及狀態(tài)寄存器,設(shè)置如下:使用內(nèi)核時(shí)鐘源、使能中斷、使能SysTick定時(shí)器。另外,函數(shù)vPortSetupTimerInterrupt()由函數(shù)vTaskStartScheduler()調(diào)用,這個(gè)函數(shù)用于啟動(dòng)調(diào)度器。

3.9設(shè)置中斷優(yōu)先級(jí)相關(guān)宏

這里特別重要,因?yàn)樯婕暗街袛鄡?yōu)先級(jí)和中斷嵌套。這里先給出基于Cortex-M3硬件(lpc177x_8x系列微控制器)的一個(gè)配置例子,在FreeRTOSConfig.h中:

#ifdef __NVIC_PRIO_BITS #defineconfigPRIO_BITS __NVIC_PRIO_BITS #else #defineconfigPRIO_BITS 5 /*lpc177x_8x微處理器使用優(yōu)先級(jí)寄存器的5位*/ #endif /*設(shè)置內(nèi)核使用的中斷優(yōu)先級(jí)*/ #define configKERNEL_INTERRUPT_PRIORITY ( 31 《《 (8 - configPRIO_BITS) ) /*定義RTOS可以屏蔽的最大中斷優(yōu)先級(jí),大于這個(gè)優(yōu)先級(jí)的中斷,不受RTOS控制*/ #defineconfigMAX_SYSCALL_INTERRUPT_PRIORITY ( 5《《 (8 - configPRIO_BITS) ) 后續(xù)文章《FreeRTOS內(nèi)核配置說(shuō)明》會(huì)詳細(xì)介紹這些宏的含義,對(duì)于Cortex-M內(nèi)核,后續(xù)文章《Cortex-M內(nèi)核使用FreeRTOS特別注意事項(xiàng)》一文,會(huì)講述這些宏與硬件的聯(lián)系,那個(gè)時(shí)候你一定會(huì)清楚這些宏所定義的數(shù)字會(huì)對(duì)你的硬件產(chǎn)生什么影響的?,F(xiàn)在,我們只需要知道他們很重要就足夠了,沒(méi)人能一口吃成胖子。

3.10 設(shè)置其它宏

還需要在FreeRTOSConfig.h設(shè)置一些必要的宏,這些宏如下所示:

#define configUSE_PREEMPTION 1 //配置為1使用搶占式內(nèi)核,配置為0使用時(shí)間片 #define configUSE_IDLE_HOOK 0 //設(shè)置為1使用空閑鉤子;設(shè)置為0不使用空閑鉤子 #define configMAX_PRIORITIES ( 5 ) //應(yīng)用程序任務(wù)中可用優(yōu)先級(jí)數(shù)目 #define configUSE_TICK_HOOK 0 //就設(shè)置為1使用時(shí)間片鉤子,設(shè)置為0不使用 #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 ) //最小空閑堆棧 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 5 * 1024 ) ) //內(nèi)核總共可用RAM

3.11 創(chuàng)建任務(wù)

調(diào)用FreeRTOS提供的API函數(shù)來(lái)創(chuàng)建任務(wù),代碼如下所示: xTaskCreate(vTask,“Task1”,50,NULL,1,NULL);

關(guān)于詳細(xì)的創(chuàng)建任務(wù)API函數(shù),會(huì)在后續(xù)文章《FreeRTOS任務(wù)創(chuàng)建和刪除》一文中介紹。

3.12 開啟調(diào)度器

調(diào)用FreeRTOS提供的API函數(shù)來(lái)啟動(dòng)調(diào)度器,代碼如下所示: vTaskStartScheduler();

關(guān)于詳細(xì)的開啟調(diào)度器API函數(shù),會(huì)在后續(xù)文章《FreeRTOS內(nèi)核控制》一文中介紹。 此時(shí)的main函數(shù)代碼如下所示:

int main(void) { init_rtos_debug(); //初始化調(diào)試串口 xTaskCreate(vTask,“Task1”,50,NULL,1,NULL); vTaskStartScheduler(); while(1); }

4. 小結(jié)

到這里,一個(gè)最基本的FreeRTOS應(yīng)用程序就已經(jīng)運(yùn)行起來(lái),將硬件板子接到PC的RS232串口,可以觀察到每隔一秒鐘,板子都會(huì)向PC發(fā)送一個(gè)指定的字符。 回頭看一下移植過(guò)程,F(xiàn)reeRTOS移植到Cortex-M3硬件是多么的簡(jiǎn)單,這一方面歸功于FreeRTOS的設(shè)計(jì)師已經(jīng)為移植做了大量工作,同時(shí),新一代的Cortex-M3硬件也為操作系統(tǒng)增加了一些列便利特性,比如SysTick定時(shí)器和全新的中斷及異常。

但是移植成功也只是萬(wàn)里長(zhǎng)征的第一步,因?yàn)檫@只是最簡(jiǎn)單的應(yīng)用。我們還不清楚FreeRTOS背后的機(jī)理、調(diào)度算法的面貌、甚至連信號(hào)量也都沒(méi)有涉及。就本文的移植過(guò)程來(lái)看,我們也刻意忽略了很多細(xì)節(jié),比如FreeRTOSConfig.h文件中的宏都有什么意義?改動(dòng)后對(duì)RTOS有何影響?比如FreeRTOS任務(wù)API的細(xì)節(jié)、調(diào)度API的細(xì)節(jié),再比如FreeRTOS的內(nèi)存如何分配?如何進(jìn)行堆棧溢出檢查等等。

所以,先不要沾沾自喜,曲折的道路還遠(yuǎn)沒(méi)到來(lái)呢。 接下來(lái)的很多篇文章會(huì)圍繞這個(gè)最簡(jiǎn)單的移植例程做詳細(xì)的講解,要把本篇文章中刻意隱藏的細(xì)節(jié)一一拿出來(lái)。這要一直持續(xù)到我們介紹隊(duì)列、信號(hào)量、互斥量等通訊機(jī)制為止。

原文標(biāo)題:FreeRTOS系列第5篇---FreeRTOS在Cortex-M3上的移植

文章出處:【微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(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)注

    68

    文章

    19895

    瀏覽量

    235203
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3484

    瀏覽量

    67498
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    851

    瀏覽量

    121167
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    493

    瀏覽量

    64347

原文標(biāo)題:FreeRTOS系列第5篇---FreeRTOS在Cortex-M3上的移植

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞薩RA8系列教程 | 基于e2sRA8跑RTOS實(shí)現(xiàn)的方法

    我們今天教大家快速搭建FreeRTOS工程的方法。早期,軟件工具不那么成熟,搭建FreeRTOS工程都是需要一步一步手動(dòng)移植。很多小伙伴吐槽,移植過(guò)程太繁瑣。而現(xiàn)在,軟件工具越來(lái)越“先
    的頭像 發(fā)表于 06-11 17:22 ?1307次閱讀
    瑞薩RA8系列教程 | 基于e2s<b class='flag-5'>在</b>RA8<b class='flag-5'>上</b>跑RTOS<b class='flag-5'>實(shí)現(xiàn)</b>的方法

    詳解FreeRTOS與SAFERTOS的區(qū)別

    開源免費(fèi)的FreeRTOS由Richard BarryWHIS工作時(shí)創(chuàng)建,WHIS基于FreeRTOS的功能模型,通過(guò)完整的HAZOP分析,確定了功能模型和API中的所有的弱點(diǎn),減輕所有薄弱環(huán)節(jié),并采用IEC 61508 SI
    的頭像 發(fā)表于 06-04 16:58 ?329次閱讀
    詳解<b class='flag-5'>FreeRTOS</b>與SAFERTOS的區(qū)別

    【RA-Eco-RA4M2開發(fā)板評(píng)測(cè)】RA-Eco-RA4M2 移植FreeRTOS

    1 前言 基于瑞薩的MCU移植FreeRTOS很簡(jiǎn)單,只需簡(jiǎn)單配置即可生成FreeRTOS的工程。筆者這里使用Renesas RA Smart Configurator和Keil5開發(fā)。 2 新建
    發(fā)表于 05-03 23:24

    MAX32555 Cortex-M3閃存微控制器英文數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《MAX32555 Cortex-M3閃存微控制器英文數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-25 16:40 ?1次下載

    如何在i.MX 8XDXL EVK的A35運(yùn)行Yocto Linux,M4運(yùn)行FreeRTOS?

    我正在使用i.MX 8XDXL 評(píng)估套件并希望 Cortex-A35 運(yùn)行 Yocto Linux 映像cores 的Cortex-M4
    發(fā)表于 04-04 06:02

    i.MX8MMini中的Cortex-M4不支持SDIO嗎?

    我們正在嘗試使用 i.MX8MMini (Cortex-A53/-M4) 并考慮 Cortex-M4 協(xié)處理器中實(shí)現(xiàn)無(wú)線模塊 (SDIO
    發(fā)表于 04-03 06:45

    移植LWIP+FREERTOS時(shí)遇到的問(wèn)題怎么解決?

    固件庫(kù),移植成功,并且跑了幾個(gè)串口通信的任務(wù),測(cè)試大概兩三天的樣子,并沒(méi)有出現(xiàn)問(wèn)題。 2:移植LWIP1.4.1 (從ST官網(wǎng)下載的那個(gè)網(wǎng)頁(yè)的例程,修改引腳定義后跑板子沒(méi)問(wèn)題,確認(rèn)
    發(fā)表于 03-11 06:48

    starvision2移植FreeRTOS,objdump后發(fā)現(xiàn)static變量的地址是0,怎么解決?

    以下內(nèi)容為評(píng)論 我是嵌入式的新手,目前打算將freeRTOS移植到starvision2。 但是鏈接的時(shí)候遇到一個(gè)問(wèn)題。 main.c:74:(.text+0x26): rel
    發(fā)表于 03-10 07:21

    Cortex-M3/M4F指令集技術(shù)用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《Cortex-M3/M4F指令集技術(shù)用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-23 16:31 ?8次下載
    <b class='flag-5'>Cortex-M3</b>/<b class='flag-5'>M</b>4F指令集技術(shù)用戶手冊(cè)

    如何使用Ozone分析Cortex-M異常

    Ozone可以幫助用戶快速分析和查找導(dǎo)致CPU故障的軟件bug。本文解釋如何使用Ozone的調(diào)試功能,深入了解Cortex-M架構(gòu)的這些錯(cuò)誤。
    的頭像 發(fā)表于 11-29 11:14 ?1695次閱讀
    如何使用Ozone分析<b class='flag-5'>Cortex-M</b>異常

    適用于低功耗和無(wú)線通信距離要求較高應(yīng)用的智能通信模組-RF-SM-1077B1

    RF-SM-1077B1是RF-star推出的Sub-1G系列模塊,其芯片CC1310內(nèi)置高性能的ARM Cortex-M3 + ARM Cortex-M0雙核處理器,主MCU ARM Cortex-M3的高性能能更快地處理應(yīng)用
    的頭像 發(fā)表于 10-24 09:37 ?578次閱讀
    適用于低功耗和無(wú)線通信距離要求較高應(yīng)用的智能通信模組-RF-SM-1077B1

    如何在RT-thread studio的裸機(jī)例程移植freertos?

    如何在RT-thread studio的裸機(jī)例程移植freertos
    發(fā)表于 09-13 06:32

    TM4C MCUFreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《TM4C MCUFreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:15 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用<b class='flag-5'>FreeRTOS</b>開發(fā)通用應(yīng)用程序應(yīng)用說(shuō)明

    TM4C MCU使用FreeRTOS開發(fā)高級(jí)應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《TM4C MCU使用FreeRTOS開發(fā)高級(jí)應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 10:17 ?2次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>使用<b class='flag-5'>FreeRTOS</b>開發(fā)高級(jí)應(yīng)用

    【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列

    GD32E230 系列是 GD 的 Cortex_M23 系列產(chǎn)品,GD32F330 系列是 GD 的 Cortex_M4 系列產(chǎn)品, 這兩個(gè)系列的兼容度非常高??蛻魰?huì)有從 GD32E230 系列
    的頭像 發(fā)表于 09-03 10:05 ?2624次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】5、GD32E230 系列<b class='flag-5'>移植</b>到 GD32F330 系列