01
gd32簡介
GD32是由兆易創新(GigaDevice)研發設計的一系列32位MCU,GD32是有和ST產品線P2P的產品系列,但和ST的產品差距還很大,還需要國人們一起努力呀。
目前GD32的單片機從內核上區分有Cortex-M3、Cortex-M4、Cortex-M23和RISC-V內核系列。
開發環境:支持主流的Keil MDK4/5、IAR等 IDE;
開發編程/燒寫工具:因為采用標準的Cortex-M內核,所有支持標準的JlinkV8/V9、Ulink2和自己的GD-link工具;
總之,只要你熟悉STM32,那么上手GD32就很快,而且GD32還有很多開發板,每塊開發板都配備有相應的demo,雖然GD32和ST由一定差距,但希望更多的開發者支持國產。
基于RT-Thread的BSP 框架
前面簡單介紹了GD32,接下來再介紹下基于RT-Thread的BSP架構。GD32的BSP 框架結構如下圖所示:
02
使用 Keil +Env開發 GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建議安裝4.74及以上;使用Keil 5建議安裝5.20以上版本。筆者的MDK是5.30。
Pack包安裝
從MDK的官網可以下載得到MDK的安裝包,然后安裝即可。
安裝完成后會自動打開,我們將其關閉。
接下來我們下載GD32F4xx的軟件支持包。
03
RT-Thread PIN設備驅動簡介
RT-Thread 提供了一套簡單的 I/O 設備模型框架,如下圖所示。
它位于硬件和應用程序之間,共分成三層,從上到下分別是 I/O 設備管理層、設備驅動框架層、設備驅動層。
應用程序通過 I/O 設備管理接口獲得正確的設備驅動,然后通過這個設備驅動與底層 I/O 硬件設備進行數據(或控制)交互。關于I/O模型的詳細描述請參看RT-Thread官方手冊。
I/O設備模型
PIN設備屬于Miscellaneous類型,在驅動文件pin.c中的rt_device_pin_register()函數可以看到其注冊的設備類型,PIN設備是很多驅動的基礎,其他驅動的開發還會依賴PIN設備,比如軟件I2C的驅動就是在PIN設備的基礎上開發的。
應用程序通過 RT-Thread 提供的 PIN 設備管理接口來訪問 GPIO,相關接口如下所示:
04
RT-Thread 的UART簡介
UART和其他設備一樣,應用程序通過統一的設備管理接口來訪問串口硬件,相關接口如下所示:
UART的主要步驟如下所示:
1.首先查找串口設備獲取設備句柄。
2.配置串口參數。
3.初始化回調函數發送使用的信號量,然后以讀寫及中斷接收方式打開串口設備。
4.設置串口設備的接收回調函數,之后發送字符串,并創建讀取數據線程。
運行序列圖如下圖所示:
-
mcu
+關注
關注
146文章
17324瀏覽量
352662
發布評論請先 登錄
相關推薦
為什么在rt-thread studio創建不了gd32的項目?
【成都】9月21日RT-Thread巡回線下培訓-OpenMV機器視覺
![【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
【南京】9月21日RT-Thread巡回線下培訓-智慧家居視頻監測系統實戰
![【南京】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-智慧家居視頻監測系統<b class='flag-5'>實戰</b>](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
【大連】9月7日RT-Thread巡回線下培訓-OpenMV機器視覺
![【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
獲獎公布!2024 RT-Thread全球巡回線下培訓火熱來襲!報名提問有獎!
2024 RT-Thread全球巡回 線下培訓火熱來襲!
![2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
【好書推薦】RT-Thread設備驅動開發指南
![【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發<b class='flag-5'>指南</b>](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
GD32F427 bootloader添加rt-thread系統后,跳轉到app沒有執行main()函數是怎么回事?
6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式
![4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C6/D0/wKgaomYDlJyAKUBmAAAgR-TqYwc187.png)
4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
RT-Thread Studio使用GD-LINK下載,選擇DAP-LINK,編譯報錯怎么解決?
《RT-Thread設備驅動開發指南》基礎篇--以先楫bsp的hwtimer設備為例
![《<b class='flag-5'>RT-Thread</b>設備驅動開發<b class='flag-5'>指南</b>》基礎篇--以先楫bsp的hwtimer設備為例](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
RT-Thread設備驅動開發指南基礎篇—以先楫bsp的hwtimer設備為例
![<b class='flag-5'>RT-Thread</b>設備驅動開發<b class='flag-5'>指南</b>基礎篇—以先楫bsp的hwtimer設備為例](https://file1.elecfans.com/web2/M00/C1/40/wKgaomXUXOGAMhesAAAk3OUcwHA076.png)
評論