初探RT-Thread系統在GD32E103x晶片上的使用,點亮LED燈
前言
隨著中美貿易戰的加劇,很多公司越來越重視使用國產技術的重要性。使用國產技術,一方面可規避國外對技術的封鎖造成產品核心技術的斷供,另一方面還可以支援中國技術的迭代和進步。
兆易創新中國一家致力於開發先進存儲器技術和IC解決方案的公司,具有豐富的產品線,基於ARM內核開發了多款MCU,而在該篇文章中我們只介紹一款MCU的使用,其是GD32E103C8T6。官網地址://www.gigadevice.com/zh-hans/
RT-Thread 是中國完全自主開發的開源的實時作業系統,被廣泛應用於能源、車載、醫療、消費電子等多個行業,成為國人自主開發、中國最成熟穩定和裝機量最大的開源 RTOS。官網地址: //www.rt-thread.org/index.html
GD32E103C8T6簡介
該晶片是一款基於Cortex-M4開發的32bit處理器,最高主頻可達到120M,大大提高了程式的運行的速度,同時晶片集成了許多通訊介面和外設:GPIO、ADC、PWM、USART、I2C等。硬體引腳兼容STM32F103C8T6,可方便從硬體上直接替換,無須修改硬體電路。GD32E103C8T6具有可觀的內部存儲空間,Flash:64KB,RAM:20KB。
準備工作
-
硬體準備
市面上基於GD32系列晶片的開發板很少,此處,由於硬體介面兼容STM32F103C8T6,所以我買了一塊基於ST的開發板,直接將原來的ST晶片替換成GD32晶片。
燒寫工具使用ST-Link。
-
軟體準備
1、Keil集成開發環境
2、GD32E10x標準韌體庫和keil支援包,下載地址://www.gd32mcu.com/cn/download/7?kw=GD32E1,文件分別對應GD32E10x Firmware Library和GD32E10x_AddOn_V1.1.0.rar。
-
Keil開發準備工作
1、Keil導入GD32E10x軟體支援包,操作按照如下圖序號操作,在彈出文件選擇框中選擇GigaDevice.GD32E10x_DFP.1.1.0.pack包進行安裝,該包存在下載GD32E10x_AddOn_V1.1.0.rar壓縮包中。
2、Keil下載RT-Thread內核,安裝選擇如下圖所示。此處選擇安裝最新版本3.1.1。
完成上述準備工作,則可進行接下來的開發了。
開發工作
-
創建工程
依次選擇,菜單欄->Project->New uVersion Project->GigaDevice->GD32E103->GD32E103C8;接著在Manage Run-Time Environment窗口中選擇系統內核RTOS->kernel。在創建的工程目錄下新建以下文件夾:
User、Drivers、Out。
-
載入GD標準韌體庫
將之前下載的標準韌體庫GD32E10x Firmware Library的解壓文件放到Drivers目錄下,該庫中包含外部設備庫,啟動彙編程式碼、第三方庫以及示例工程程式碼。將GD32E10x_Firmware_Library\Template目錄下的全部c文件和h文件複製到User文件夾下(main,systick相關文件除外)。
-
完善工程
右擊Keil工程顯示欄中的工程選擇Manage Project Items,可在管理中修改工程名稱,新加組,以及添加組文件。修改完成之後,顯示如下圖所示。
在Drivers中添加Drivers\GD32E10x_Firmware_Library\Firmware\GD32E10x_standard_peripheral\Source下的所有C文件和Drivers\GD32E10x_Firmware_Library\Firmware\CMSIS\GD\GD32E10x\Source\system_gd32e10x.c文件。
在User中添加User目錄下的所有C文件。
在Startup中添加Drivers\GD32E10x_Firmware_Library\Firmware\CMSIS\GD\GD32E10x\Source\ARM\startup_gd32e10x.s
右擊Keil工程顯示欄中的工程選擇Optins for Target,在Output選項卡中點擊Select Folder for Objects…按鈕選擇將編譯目標保存到Out文件夾中,並選擇Create HEX File。在Listing選項卡中點擊Select Folder for Listings…按鈕選擇將編譯中間生成的文件保存到Out文件夾中。
在C/C++選項卡中Define欄定義以下宏USE_STDPERIPH_DRIVER,GD32E10X,GD32E103V_EVAL,Include Paths中包含所有工程用到的H文件所屬目錄或者文件夾。
在Debug選項卡中選擇ST-Link Debugger。
-
訂製RT-Thread
因RT-Thread系統內核已經實現了針對Cortex-M3和Cortex-M4 處理器的移植,只需要簡單修改程式碼即可使用。刪除gd32e10x_it.c文件中PendSV_Handler和SysTick_Handler函數,因為RT-Thread重新定義了這兩個中斷函數。在此點亮LED燈的應用中,選擇在空閑進程中的鉤子函數中更新看門狗重裝載計數器(喂狗操作),所以在rtconfig.h將 #define RT_USING_IDLE_HOOK字元串前面的注釋符號去掉,使得空閑鉤子使能。該應用中選擇開啟動態分配記憶體,所以在rtconfig.h將#define RT_USING_HEAP去掉,開啟該功能。
-
編寫應用
該項目的應用程式碼全部放在了User文件夾中,詳細程式碼工程下載地址:
-
燒寫韌體運行
編譯完成即可通過ST-link工具將程式碼燒寫至晶片運行。
注意:關於GD晶片韌體庫和軟體支援下載地址://www.gd32mcu.com/cn/download/6?kw=GD32E1