一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲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)不再提示

FreeRTOS移植+點(diǎn)亮OLED任務(wù)線程

冬至子 ? 來(lái)源:兆易創(chuàng)新GD32 MCU ? 作者:足球之路 ? 2022-10-11 14:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

準(zhǔn)備工作:

先下載了官方提供的手冊(cè)、DEMO、固件包,并通讀了一下(注意,MDK版本要求比較高!為了找個(gè)能用的Keil折騰了很久):

pYYBAGNE4BWATCH0AABs6gP8e0U942.png

制作裸機(jī)點(diǎn)燈代碼

前面已經(jīng)有‘探路者’把這部分做完了,我就不再敘述了,不過(guò)還是要自己動(dòng)手移植一下,這樣可以了解片子與f103等常用的芯片的區(qū)別。

添加FreeRTOS部分

這是第一次真正意義上自己獨(dú)立移植了一次FreeRTOS^_^,沒(méi)有遇到太多的障礙:

使用的FreeRTOS版本是正點(diǎn)原子f103光盤里面的,9.0版本

poYBAGNE4CeAP0h8AACuUKuhF_E043.png

解壓縮后,只需要復(fù)制FreeRTOS,而用不到*-Plus:

poYBAGNE4DiASJXtAACZaNJCxFU587.png

FreeRTOS中,也有很多用不到的文件,請(qǐng)參考正點(diǎn)原子開(kāi)源的FreeRTOS移植教程

需要注意的地方是GD32的中斷都放在了gd32f3x0_it.c中,需要屏蔽2個(gè)中斷空函數(shù),進(jìn)而直接調(diào)用freeRTOS內(nèi)的同名函數(shù):

pYYBAGNE4E6ALv1VAAFpuxqrufQ590.png

并在systick_handler中加入調(diào)用FreeRTOS的時(shí)鐘函數(shù):

void SysTick_Handler(void)
{
    //led_spark();
    delay_decrement();
    #if (INCLUDE_xTaskGetSchedulerState == 1)
        if (xTaskgetSchedulerState() != taskSCHEDULER_NOT_STARTED)
        {
    #endif
            xPortSysTickHandler();
    #if (INCLUDE_xTaskGetSchedulerState == 1)    
        }
    #endif
}

主要FreeRTOS的棧設(shè)置要合理:

#define configTOTAL_HEAP_SIZE            ( ( size_t ) ( 2 * 1024 ) )

Program Size: Code=6068 RO-data=6448 RW-data=112 ZI-data=4296

這樣片子的可玩性還是挺高的。

移植正點(diǎn)原子OLED代碼:

這部分代碼邏輯比較簡(jiǎn)單,看下正點(diǎn)原子的教程都可以很快搞定:

主要修改了正點(diǎn)原子通過(guò)位帶操作控制引腳改為使用GD的庫(kù)函數(shù):

                                      
//---------------------------OLED端口定義--------------------------                         
#define OLED_CS(x)  gpio_bit_write(GPIOB,GPIO_PIN_0,(FlagStatus)(x));
#define OLED_RST(x) gpio_bit_write(GPIOA,GPIO_PIN_5,(FlagStatus)(x));
#define OLED_DC(x)  gpio_bit_write(GPIOB,GPIO_PIN_1,(FlagStatus)(x));
#define OLED_WR(x)  gpio_bit_write(GPIOB,GPIO_PIN_4,(FlagStatus)(x));
#define OLED_RD(x)  gpio_bit_write(GPIOB,GPIO_PIN_5,(FlagStatus)(x));

最終完成移植:

pYYBAGNE4GCAJRa-AAFR5IG3k2w845.png

總結(jié)

現(xiàn)在芯片都比較成熟,性能都過(guò)剩,這款芯片提供的資料也都?jí)蛴?,?duì)于上手使用比較方便。后面自己做一些手表、物聯(lián)網(wǎng)小產(chǎn)品,可以玩一下。




審核編輯:劉清

聲明:本文內(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)投訴
  • OLED
    +關(guān)注

    關(guān)注

    120

    文章

    6285

    瀏覽量

    228044
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    493

    瀏覽量

    64325
  • 裸機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    6695
  • 中斷函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    FreeRTOS系統(tǒng)使用xTaskCreate產(chǎn)生的任務(wù)與osThreadDef 產(chǎn)生的線程有什么不同?

    請(qǐng)教下是要 FreeRTOS系統(tǒng), 使用 xTaskCreate 產(chǎn)生的任務(wù) 與 osThreadDef產(chǎn)生的線程有什么不同?
    發(fā)表于 04-29 07:20

    移植FreeRTOS-CLI時(shí),發(fā)現(xiàn)CLI任務(wù)移植無(wú)法被執(zhí)行怎么回事

    移植FreeRTOS-CLI時(shí),發(fā)現(xiàn)CLI任務(wù)移植無(wú)法被執(zhí)行,麻煩各位指教!謝謝stm32f103rct_freertos_demo.zi
    發(fā)表于 07-21 08:04

    請(qǐng)問(wèn)CubeMX如何配置FreeRTOS跑多線程任務(wù)

    請(qǐng)問(wèn)CubeMX如何配置FreeRTOS跑多線程任務(wù)?
    發(fā)表于 02-14 06:39

    FreeRTOS下對(duì)lwIP的移植程序

    FreeRTOS下對(duì) lwIP的移植程序。
    發(fā)表于 10-29 10:58 ?11次下載

    freertos移植教程_freertos任務(wù)調(diào)度原理

    移植之前,我們首先要獲取到FreeRTOS的官方的源碼包。
    發(fā)表于 04-16 09:16 ?1.3w次閱讀
    <b class='flag-5'>freertos</b><b class='flag-5'>移植</b>教程_<b class='flag-5'>freertos</b><b class='flag-5'>任務(wù)</b>調(diào)度原理

    FreeRTOS任務(wù)如何創(chuàng)建和刪除?

    FreeRTOS移植到Cortex-M3硬件平臺(tái)的文章中,我們已經(jīng)見(jiàn)過(guò)任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將
    的頭像 發(fā)表于 03-11 18:08 ?3235次閱讀

    轉(zhuǎn)發(fā):stm32 移植 freertos

    轉(zhuǎn)發(fā):stm32 移植 freertos
    發(fā)表于 11-20 12:36 ?14次下載
    轉(zhuǎn)發(fā):stm32 <b class='flag-5'>移植</b> <b class='flag-5'>freertos</b>

    IAR移植FreeRTOS

    IAR移植FreeRTOS之前寫了移植在MDK的文章,之后試著移植到IAR上(IAR的在線調(diào)試功能用著比MDK順手,在線調(diào)試實(shí)時(shí)查看大型數(shù)組也不會(huì)卡死,MDK查看數(shù)組若是太大會(huì)很卡)。
    發(fā)表于 12-03 10:36 ?15次下載
    IAR<b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>

    FreeRTOS移植—基于STM32

    FreeRTOS移植—基于STM32
    發(fā)表于 12-04 12:51 ?18次下載
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>—基于STM32

    【STM32】FreeRTOS移植

    00. 目錄文章目錄00. 目錄01. 簡(jiǎn)介02. 預(yù)備工作03. FreeRTOS移植04. SYSTEM文件修改05. 測(cè)試程序設(shè)計(jì)06. 附錄07. 參考01. 簡(jiǎn)介我們已經(jīng)了解
    發(fā)表于 12-04 14:06 ?15次下載
    【STM32】<b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>

    初入FreeRTOS

    源碼3、FreeRTOS移植操作三、在STM32下完成一個(gè)基于FreeRTOS的多任務(wù)程序1、任務(wù)要求2、
    發(fā)表于 12-06 21:06 ?43次下載
    初入<b class='flag-5'>FreeRTOS</b>

    基于FreeRTOS的STM32多任務(wù)程序

    基于FreeRTOS的STM32多任務(wù)程序一、材料準(zhǔn)備二、 FreeRTOS移植FreeRTOS是什么F
    發(fā)表于 12-27 18:38 ?28次下載
    基于<b class='flag-5'>FreeRTOS</b>的STM32多<b class='flag-5'>任務(wù)</b>程序

    FreeRTOS系列第10篇---FreeRTOS任務(wù)創(chuàng)建和刪除

    FreeRTOS移植到Cortex-M3硬件平臺(tái)的文章中,我們已經(jīng)見(jiàn)過(guò)任務(wù)創(chuàng)建API,但那篇文章的重點(diǎn)在于如何移植FreeRTOS,本文將
    發(fā)表于 01-26 17:56 ?13次下載
    <b class='flag-5'>FreeRTOS</b>系列第10篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>創(chuàng)建和刪除

    FreeRTOS任務(wù)創(chuàng)建與刪除

    FreeRTOS 中,每個(gè)執(zhí)行線程都被稱為”任務(wù)”。在嵌入式社區(qū)中,對(duì)此并沒(méi)有一個(gè)公允的術(shù)語(yǔ),但我更喜歡用”任務(wù)”而不是”線程”,因?yàn)閺?/div>
    的頭像 發(fā)表于 02-10 14:43 ?1774次閱讀

    RA FreeRTOS任務(wù)創(chuàng)建

    隨著嵌入式應(yīng)用程序變得越來(lái)越復(fù)雜,單片機(jī)裸機(jī)開(kāi)發(fā)已經(jīng)無(wú)法滿足工程師對(duì)于復(fù)雜程序的需求。于是具有多任務(wù)調(diào)度和實(shí)時(shí)響應(yīng)特性的RTOS便越來(lái)越受工程師們青睞。瑞薩RA系列MCU兼容FreeRTOS系統(tǒng)
    的頭像 發(fā)表于 07-12 10:00 ?1027次閱讀
    RA <b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務(wù)</b>創(chuàng)建