在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何創(chuàng)建RT-Thread Nano工程

GD32MCU ? 來源:GD32MCU ? 作者:GD32MCU ? 2022-03-19 12:13 ? 次閱讀

GD32L233C-START評測系列

兆易創(chuàng)新GD32L233系列全新低功耗MCU的最高主頻為64MHz,集成了64-256KB的嵌入式eFlash和16-32KB的SRAM,以及連接到兩條APB總線的各類增強型I/O和外設(shè)資源。芯片持續(xù)采用行業(yè)領(lǐng)先的Arm Cortex-M23內(nèi)核,通過精簡強大的Armv8-M指令集和全面優(yōu)化的總線設(shè)計帶來高效處理能力,包含獨立的乘法器和除法器,廣泛適用于工業(yè)表計、小型消費電子設(shè)備、便攜式醫(yī)療設(shè)備、電池管理系統(tǒng)、數(shù)據(jù)采集與傳輸?shù)鹊湫褪袌觥?/p>

評測主角:GD32L233C-START 評估板 使用 GD32L233CCT6 作為主控制器,使用 GD-Link Mini USB 接口提供 5V 電源,提供包括擴展引腳在內(nèi)的及Reset、Boot、Button key、LED、USB、USART 轉(zhuǎn) USB 接口等外設(shè)資源。下載程序到評估板需要使用 GD-Link 工具,所有例程提供了Keil 和IAR 兩個版本。

移植RT-Thread至GD32L233

本文將嘗試使用國產(chǎn)的嵌入式實時操作系統(tǒng)RT-Thread,相比較于FreeRTOS,RT-Thread還是有很多有點的,比如有Fish命令行界面,國產(chǎn)開源免費,Nano版本代碼量極小,移植起來非常簡單(比freeRTOS移植還簡單)等,本文將講解如何將RT-Thread Nano移植到GD32L233C。

一、獲取RT-Thread基于KEIL的離線安裝包

https://www.rt-thread.org/download/mdk/RealThread.RT-Thread.3.1.5.pack

下載之后雙擊安裝即可。

二、添加RT-Thread Nano到工程

1. 打開我們自己的工程,在我的GD32L233C的第二篇帖子中,講解了如何創(chuàng)建一個全新的工程,本文將會在上一篇創(chuàng)建的工程的基礎(chǔ)上添加RT-Thread OS,觀看上一篇帖子請移步:http://bbs.eeworld.com.cn/thread-1192155-1-1.html

2. 點擊 Manage Run-Time Environment,展開RTOS,勾上kernel

06c78c94-a69f-11ec-952b-dac502259ad0.png

3. 點擊OK,我們可以看到KEIL已經(jīng)自動為我們添加了Cortex-M23相關(guān)的內(nèi)核源碼,這點還是很方便,很人性化的,不用我們在手動修改了。

06e40658-a69f-11ec-952b-dac502259ad0.png

查看官方的文檔堆各個文件都有具體的描述:

06fd03b0-a69f-11ec-952b-dac502259ad0.png

三、修改文件適配Rt-Thread

我們需要修改HardFault_Handler()和 PendSV_Handler(),這兩個文件是由RT-Thread實現(xiàn)的,所以我們工程里面原來的這兩個函數(shù)都需要刪除掉,屏蔽掉這兩個函數(shù)的申明和定義:

0714259a-a69f-11ec-952b-dac502259ad0.png

072e032a-a69f-11ec-952b-dac502259ad0.png

四、修改系統(tǒng)時鐘

RT-Thread已經(jīng)為我們寫好了時鐘節(jié)拍函數(shù)rt_os_tick_callback(), 在board.c文件中,我們只需要將這個函數(shù)放置到SysTick_Handler()中即可,注意需要刪除SysTick_Handler()中的原有內(nèi)容。

075c43a2-a69f-11ec-952b-dac502259ad0.png

刪除rt_hw_board_init()函數(shù)中的#error信息,這個函數(shù)在board.c文件中,其目的是提醒用戶移植的時候不要忘了心跳節(jié)拍的移植,這點還是很人性化的,免得移植了半天發(fā)現(xiàn)不工作。

0791d828-a69f-11ec-952b-dac502259ad0.png

五、修改時鐘節(jié)拍

RT-Thread為我們提供的配置文件的時鐘節(jié)拍是1000,也就是1ms,如果你想要修改心跳節(jié)拍,可以在rtconfig.h中修改這個宏RT_TICK_PER_SECOND,目前是1000,如果想修改節(jié)拍為10ms,則修改該值為10000,修改的時候最好不要直接修改rtconfig.h這個文件,因為KEIL提供了配置界面修改,在配置界面修改安全可靠。

07cf2584-a69f-11ec-952b-dac502259ad0.png

六、創(chuàng)建線程測試移植是否成功

經(jīng)過了上面的步驟,我們的移植已經(jīng)算是完成了,接下來就是寫程序驗證了,像上一篇帖子一樣,我們寫兩個LED動作的線程,LED1 100ms閃爍一次,LED2500ms閃爍一次來做對比,別忘了修改LED燈的引腳,上一篇帖子已經(jīng)說明白了,引腳不對,需要我們自己修改,如下:

08049e3a-a69f-11ec-952b-dac502259ad0.png

在main.c中寫兩個線程,如下:

#include "gd32l23x.h"#include "systick.h"#include #include "main.h"#include "gd32l233r_eval.h"#include 

static rt_thread_t led1_thr = RT_NULL;static rt_thread_t led2_thr = RT_NULL;
static void thread_led1_entry(void *parameter);static void thread_led2_entry(void *parameter);
/*!    rief      main function    param[in]  none    param[out] none    
etval     none*/
int main(void){    /* configure systick */    systick_config();    /* initilize the LEDs, USART and key */    gd_eval_led_init(LED1);    gd_eval_led_init(LED2);
    led1_thr = rt_thread_create( "led1",     /*線程名字*/                                                      thread_led1_entry,/*線程入口函數(shù)*/                                  RT_NULL,/*線程入口函數(shù)參數(shù)*/                                  256,    /*線程棧大小*/                                  4 ,    /*線程優(yōu)先級*/                                  20);   /*線程時間片*/    led2_thr = rt_thread_create( "led2",     /*線程名字*/                                                      thread_led2_entry,/*線程入口函數(shù)*/                                  RT_NULL,/*線程入口函數(shù)參數(shù)*/                                  256,    /*線程棧大小*/                                  3 ,    /*線程優(yōu)先級*/                                  20);   /*線程時間片*/        rt_thread_startup (led1_thr);    rt_thread_startup (led2_thr);
    while(1)     {        rt_thread_mdelay(100);    }}
static void thread_led1_entry(void *parameter){    while (1)    {        gd_eval_led_toggle(LED1);        rt_thread_mdelay(100);    }}
static void thread_led2_entry(void *parameter){    while (1)    {        gd_eval_led_toggle(LED2);        rt_thread_mdelay(500);    }}

編譯成功下載,發(fā)現(xiàn)程序并不運行,這是為什么呢?通過堆問題的查找,發(fā)現(xiàn)是main函數(shù)線程的堆??臻g分配的太小了,因為相比較于其他嵌入式系統(tǒng),RT-Thread將main函數(shù)也做為了一個線程,我們在main函數(shù)中創(chuàng)建線程需要較大的空間,而RT-Thread給的默認(rèn)配置的main線程的堆??臻g為256,修改為512即可:

081b858c-a69f-11ec-952b-dac502259ad0.png

再次編譯下載,成功,后期可以使用RT-Thread來開發(fā)多線程任務(wù)了。

七、演示

原文標(biāo)題:GD32L233開發(fā)板評測 | RT-Thread操作系統(tǒng)移植

文章出處:【微信公眾號:GD32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    51893

    瀏覽量

    433285
  • 乘法器
    +關(guān)注

    關(guān)注

    9

    文章

    211

    瀏覽量

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

    關(guān)注

    31

    文章

    1345

    瀏覽量

    41353

原文標(biāo)題:GD32L233開發(fā)板評測 | RT-Thread操作系統(tǒng)移植

文章出處:【微信號:GD32MCU,微信公眾號:GD32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    從安裝到使用,RT-Thread Nano最全教程看完不信你還不會使用

    RT-Thread Nano發(fā)布以來,小編收到不少開發(fā)者詢問RT-Thread Nano的配套教程實例,幸得RT-Thread開發(fā)者燕十三
    的頭像 發(fā)表于 09-26 06:39 ?6.4w次閱讀
    從安裝到使用,<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>最全教程看完不信你還不會使用

    RT-Thread Nano入門:獨立看門狗(IWDT)

    本文主要介紹怎么用RT-Thread Nano實現(xiàn)獨立看門狗IWDT驅(qū)動,創(chuàng)建一個喂狗線程,實現(xiàn)定時喂狗功能。
    的頭像 發(fā)表于 11-22 11:04 ?2902次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入門:獨立看門狗(IWDT)

    基于 Keil MDK 移植 RT-Thread Nano

    基于 Keil MDK 移植 RT-Thread Nano 本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎(chǔ)
    發(fā)表于 03-29 06:58

    如何基于CubeMX移植RT-Thread Nano

    本文介紹了如何基于 CubeMX 移植 RT-Thread Nano,并說明生成代碼工程的步驟。RT-Thread Nano 已集成在 Cu
    發(fā)表于 03-29 06:56

    RT-Thread Nano 簡介

    基于 Nano 創(chuàng)建工程直接使用。以下是使用不同開發(fā)環(huán)境時,可以選擇移植或使用 Nano 的方法:在 RT-Thread Studio 上使用 RT
    發(fā)表于 05-14 10:22

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。RT-Thread
    發(fā)表于 05-14 10:32

    基于 CubeMX 移植 RT-Thread Nano

    本文介紹了如何基于 CubeMX 移植 RT-Thread Nano,并說明生成代碼工程的步驟。RT-Thread Nano 已集成在 Cu
    發(fā)表于 05-14 16:09

    基于 IAR 移植 RT-Thread Nano

    本文介紹了如何基于 IAR 移植 RT-Thread Nano,并以一個 stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。移植 Nano 的主要步驟:準(zhǔn)備一個基礎(chǔ)的 IAR
    發(fā)表于 05-18 15:40

    RT-Thread Studio 上使用 RT-Thread Nano

    本文介紹了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并以創(chuàng)建 stm32f103RB 的 Nano
    發(fā)表于 05-18 15:59

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。RT-Thread
    發(fā)表于 05-19 18:15

    【國產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下載相關(guān)開源資料請點擊閱讀原文這是一個航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機工程的基礎(chǔ)上進(jìn)行 RT-Thread
    發(fā)表于 11-21 18:51 ?42次下載
    【國產(chǎn)MCU系列】在 HK32F030 上移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread Nano入門學(xué)習(xí)筆記

    RT-Thread Nano入門學(xué)習(xí)筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>入門學(xué)習(xí)筆記

    STM32 RT-Thread Nano(1)基于 Keil MDK 移植

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。開發(fā)平臺:Keil MDK硬件平臺:XNUCLEO-F103RB
    發(fā)表于 12-02 16:06 ?13次下載
    STM32 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>(1)基于 Keil MDK 移植

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread
    發(fā)表于 01-26 17:04 ?17次下載
    基于 Keil MDK 移植 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>
    主站蜘蛛池模板: 国产美女主播一级成人毛片 | 色婷婷亚洲综合五月 | 日韩免费毛片 | 成年网站在线播放 | 女人张开腿让男人做爽爽 | 国产拍拍拍免费视频网站 | 亚洲美女黄视频 | 欧美另类69xxxxx性欧 | 日韩精品一卡二卡三卡四卡2021 | 亚洲一区在线视频观看 | 1314亚洲人成网站在线观看 | 天天看片中文字幕 | 亚洲成人网在线观看 | 天天综合天天操 | 末发育女一区二区三区 | 天天射天天干天天操 | 免费人成网ww44kk44 | 1024在线观看你懂的 | 一级特级毛片免费 | 四虎永久在线精品国产免费 | 国产91色综合久久免费分享 | 成人午夜视频免费看欧美 | 一级毛毛片毛片毛片毛片在线看 | 久久婷婷婷 | 女人张开腿给男人桶爽免费 | 亚洲欧美综合一区 | 人人做人人爽久久久精品 | 伊人久久大香线蕉资源 | 亚洲国产成人久久一区www | 色综合久久五月 | 久久久久国产精品免费免费不卡 | 成人三级电影在线观看 | 一区二区三区国模大胆 | 色香影院 | 四虎在线播放免费永久视频 | 91夜夜人人揉人人捏人人添 | 亚洲不卡视频在线观看 | 亚洲人成网站在线在线 | 午夜欧美精品久久久久久久久 | 国产亚洲精品成人一区看片 | 99久久亚洲国产高清观看 |