国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

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

發(fā)布者:Meilin8888最新更新時間:2024-11-13 來源: elecfans關(guān)鍵字:FreeRTOS移植 手機看文章 掃描二維碼
隨時隨地手機看文章

準備工作:

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

pYYBAGNE4BWATCH0AABs6gP8e0U942.png

制作裸機點燈代碼

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

添加FreeRTOS部分

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

使用的FreeRTOS版本是正點原子f103光盤里面的,9.0版本

poYBAGNE4CeAP0h8AACuUKuhF_E043.png

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

poYBAGNE4DiASJXtAACZaNJCxFU587.png

FreeRTOS中,也有很多用不到的文件,請參考正點原子開源的FreeRTOS移植教程。

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

pYYBAGNE4E6ALv1VAAFpuxqrufQ590.png


并在systick_handler中加入調(diào)用FreeRTOS的時鐘函數(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


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


移植正點原子OLED代碼:


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


主要修改了正點原子通過位帶操作控制引腳改為使用GD的庫函數(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)在芯片都比較成熟,性能都過剩,這款芯片提供的資料也都夠用,對于上手使用比較方便。后面自己做一些手表、物聯(lián)網(wǎng)小產(chǎn)品,可以玩一下。


關(guān)鍵字:FreeRTOS移植 引用地址:FreeRTOS移植+點亮OLED任務(wù)線程

上一篇:關(guān)于GD32F150R8的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備的介紹和應(yīng)用
下一篇:FreeRTOS|再次移植

推薦閱讀最新更新時間:2025-06-29 07:50

單片機系統(tǒng)中的多任務(wù)線程機制的實現(xiàn)
摘要:單片機系統(tǒng)的開發(fā)多情況下不是在嵌入式操作系統(tǒng)平臺上進行的,而是直接基于處理器編寫。在多任務(wù)并行執(zhí)行的要求下,可以借鑒操作系統(tǒng)中的任務(wù)和線程機制,對資源和處理器合理進行調(diào)度。本文以實例對此進行討論。 關(guān)鍵詞:單片機 任務(wù) 線程 并行處理 引言 首先要指出的是一點是,我們不是討論嵌入式實時多任務(wù)操作系統(tǒng)(RTOS)的設(shè)計。我們討論的是,在不使用RTOS的控制系統(tǒng)中,如何體現(xiàn)多任務(wù)多線程機制的程序設(shè)計思想。 一些嵌入式設(shè)備可以需要操作系統(tǒng),例如掌上電腦、PDA、網(wǎng)絡(luò)控制器等高性能的手持設(shè)備和移動設(shè)備。它們往往和無線通信、互聯(lián)網(wǎng)訪問和多媒體處理等復(fù)雜而強大的功能聯(lián)系在一起;對CPU要求也很高,往往是以通用CPU為原型的各種高
[單片機]
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved