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

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

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

【資料下載】免費(fèi)領(lǐng)取!基于RT-Thread的GD32應(yīng)用實(shí)戰(zhàn)學(xué)習(xí)指南

電子發(fā)燒友論壇 ? 2022-05-24 09:22 ? 次閱讀

01

gd32簡介

GD32是由兆易創(chuàng)新(GigaDevice)研發(fā)設(shè)計(jì)的一系列32位MCU,GD32是有和ST產(chǎn)品線P2P的產(chǎn)品系列,但和ST的產(chǎn)品差距還很大,還需要國人們一起努力呀。

目前GD32的單片機(jī)從內(nèi)核上區(qū)分有Cortex-M3、Cortex-M4、Cortex-M23和RISC-V內(nèi)核系列。

a971a5ea-dadb-11ec-b80f-dac502259ad0.jpg

開發(fā)環(huán)境:支持主流的Keil MDK4/5、IAR等 IDE;

開發(fā)編程/燒寫工具:因?yàn)椴捎脴?biāo)準(zhǔn)的Cortex-M內(nèi)核,所有支持標(biāo)準(zhǔn)的JlinkV8/V9、Ulink2和自己的GD-link工具;

總之,只要你熟悉STM32,那么上手GD32就很快,而且GD32還有很多開發(fā)板,每塊開發(fā)板都配備有相應(yīng)的demo,雖然GD32和ST由一定差距,但希望更多的開發(fā)者支持國產(chǎn)。

基于RT-Thread的BSP 框架

前面簡單介紹了GD32,接下來再介紹下基于RT-Thread的BSP架構(gòu)。GD32的BSP 框架結(jié)構(gòu)如下圖所示:

a99b7848-dadb-11ec-b80f-dac502259ad0.jpg

02

使用 Keil +Env開發(fā) GD32

目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建議安裝4.74及以上;使用Keil 5建議安裝5.20以上版本。筆者的MDK是5.30。


Pack包安裝


從MDK的官網(wǎng)可以下載得到MDK的安裝包,然后安裝即可。

aa2cd5e0-dadb-11ec-b80f-dac502259ad0.jpg

安裝完成后會(huì)自動(dòng)打開,我們將其關(guān)閉。
接下來我們下載GD32F4xx的軟件支持包。

aa533708-dadb-11ec-b80f-dac502259ad0.jpg

03

RT-Thread PIN設(shè)備驅(qū)動(dòng)簡介

RT-Thread 提供了一套簡單的 I/O 設(shè)備模型框架,如下圖所示。

aa88b658-dadb-11ec-b80f-dac502259ad0.jpg

它位于硬件和應(yīng)用程序之間,共分成三層,從上到下分別是 I/O 設(shè)備管理層、設(shè)備驅(qū)動(dòng)框架層、設(shè)備驅(qū)動(dòng)層。

應(yīng)用程序通過 I/O 設(shè)備管理接口獲得正確的設(shè)備驅(qū)動(dòng),然后通過這個(gè)設(shè)備驅(qū)動(dòng)與底層 I/O 硬件設(shè)備進(jìn)行數(shù)據(jù)(或控制)交互。關(guān)于I/O模型的詳細(xì)描述請參看RT-Thread官方手冊。

I/O設(shè)備模型

PIN設(shè)備屬于Miscellaneous類型,在驅(qū)動(dòng)文件pin.c中的rt_device_pin_register()函數(shù)可以看到其注冊的設(shè)備類型,PIN設(shè)備是很多驅(qū)動(dòng)的基礎(chǔ),其他驅(qū)動(dòng)的開發(fā)還會(huì)依賴PIN設(shè)備,比如軟件I2C的驅(qū)動(dòng)就是在PIN設(shè)備的基礎(chǔ)上開發(fā)的。

應(yīng)用程序通過 RT-Thread 提供的 PIN 設(shè)備管理接口來訪問 GPIO,相關(guān)接口如下所示:

aac234a0-dadb-11ec-b80f-dac502259ad0.jpg

04

RT-Thread 的UART簡介

UART和其他設(shè)備一樣,應(yīng)用程序通過統(tǒng)一的設(shè)備管理接口來訪問串口硬件,相關(guān)接口如下所示:

ab11daaa-dadb-11ec-b80f-dac502259ad0.jpg

UART的主要步驟如下所示:
1.首先查找串口設(shè)備獲取設(shè)備句柄。
2.配置串口參數(shù)
3.初始化回調(diào)函數(shù)發(fā)送使用的信號量,然后以讀寫及中斷接收方式打開串口設(shè)備。
4.設(shè)置串口設(shè)備的接收回調(diào)函數(shù),之后發(fā)送字符串,并創(chuàng)建讀取數(shù)據(jù)線程。


運(yùn)行序列圖如下圖所示:

ab4ed9aa-dadb-11ec-b80f-dac502259ad0.jpg

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

    關(guān)注

    146

    文章

    17316

    瀏覽量

    352346
收藏 人收藏

    評論

    相關(guān)推薦

    為什么在rt-thread studio創(chuàng)建不了gd32的項(xiàng)目?

    為什么在rt-thread studio中創(chuàng)建一個(gè)gd32項(xiàng)目時(shí)候,他打開的那個(gè)選型芯片型號是,安裝好了,沒有確認(rèn)鍵啊,只有退出sdk管理器,然后就卡在那里了,創(chuàng)建不了gd32的項(xiàng)目
    發(fā)表于 09-27 09:52

    【成都】9月21日RT-Thread巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    親愛的RT-Thread社區(qū)成員們:RT-Thread24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開發(fā),以及和工程師們線下交流的絕佳機(jī)會(huì)
    的頭像 發(fā)表于 09-13 08:09 ?931次閱讀
    【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    【南京】9月21日RT-Thread巡回線下培訓(xùn)-智慧家居視頻監(jiān)測系統(tǒng)實(shí)戰(zhàn)

    親愛的RT-Thread社區(qū)成員們:RT-Thread24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開發(fā)的絕佳機(jī)會(huì)。2024年
    的頭像 發(fā)表于 09-11 08:07 ?406次閱讀
    【南京】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-智慧家居視頻監(jiān)測系統(tǒng)<b class='flag-5'>實(shí)戰(zhàn)</b>

    【大連】9月7日RT-Thread巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    親愛的RT-Thread社區(qū)成員們:2024年RT-Thread全球開發(fā)者線下培訓(xùn)拉開帷幕啦!24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入
    的頭像 發(fā)表于 09-01 08:02 ?1784次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    獲獎(jiǎng)公布!2024 RT-Thread全球巡回線下培訓(xùn)火熱來襲!報(bào)名提問有獎(jiǎng)!

    親愛的RT-Thread社區(qū)成員們: 我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超 10座城市及國家 ,為開發(fā)者提供一個(gè)深入學(xué)習(xí)
    發(fā)表于 08-20 14:15

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來襲!

    親愛的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)RT-T
    的頭像 發(fā)表于 08-07 08:35 ?1463次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來襲!

    【好書推薦】RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南

    強(qiáng)烈,他們迫切地希望有一本可以指導(dǎo)他們在RT-Thread上開發(fā)驅(qū)動(dòng)的指南。為了解決開發(fā)者的燃眉之急,《RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》來了!希望幫助
    的頭像 發(fā)表于 08-01 08:35 ?706次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開發(fā)<b class='flag-5'>指南</b>

    GD32F427 bootloader添加rt-thread系統(tǒng)后,跳轉(zhuǎn)到app沒有執(zhí)行main()函數(shù)是怎么回事?

    Copyright by rt-thread team GD32是通過 nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x8000); // 向量偏移 來修改中斷向量
    發(fā)表于 07-11 06:31

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 05-28 08:35 ?475次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 04-16 08:35 ?454次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread資深嵌入式軟件工程師農(nóng)曉明老師為您講
    的頭像 發(fā)表于 03-27 11:36 ?870次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請到RT-Thread資深
    的頭像 發(fā)表于 03-27 08:34 ?562次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread Studio使用GD-LINK下載,選擇DAP-LINK,編譯報(bào)錯(cuò)怎么解決?

    下載源碼5.0.2, 使用RT-Thread Studio v2.2.7,導(dǎo)入bsp里面的RT-Thread Studio項(xiàng)目 MCU使用GD32F470ZKT6 使用
    發(fā)表于 02-26 06:47

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    一、概述(一)RT-Thread設(shè)備驅(qū)動(dòng)《RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-threa
    的頭像 發(fā)表于 02-24 08:16 ?1811次閱讀
    《<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開發(fā)<b class='flag-5'>指南</b>》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-thread IO設(shè)備驅(qū)動(dòng)開發(fā)方法,從三方面進(jìn)行講解。
    的頭像 發(fā)表于 02-20 16:01 ?1781次閱讀
    <b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開發(fā)<b class='flag-5'>指南</b>基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例