初探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_HandlerSysTick_Handler函數,因為RT-Thread重新定義了這兩個中斷函數。在此點亮LED燈的應用中,選擇在空閑進程中的鉤子函數中更新看門狗重裝載計數器(喂狗操作),所以在rtconfig.h#define RT_USING_IDLE_HOOK字元串前面的注釋符號去掉,使得空閑鉤子使能。該應用中選擇開啟動態分配記憶體,所以在rtconfig.h#define RT_USING_HEAP去掉,開啟該功能。

  • 編寫應用

    該項目的應用程式碼全部放在了User文件夾中,詳細程式碼工程下載地址:

    //gitee.com/awesomeoy/gd32-e103-c8-t6_-demo

  • 燒寫韌體運行

    編譯完成即可通過ST-link工具將程式碼燒寫至晶片運行。

注意:關於GD晶片韌體庫和軟體支援下載地址://www.gd32mcu.com/cn/download/6?kw=GD32E1

Tags: