寫在前面:聚沃科技SDK使用GD固件庫基礎上開發(fā)了MCU外設驅(qū)動的中間層以及板級外設的驅(qū)動,相關例程調(diào)用驅(qū)動函數(shù)實現(xiàn),用戶在基于聚沃科技的SDK做產(chǎn)品開發(fā)時,可以很方便的適配新的硬件,直接調(diào)用相關驅(qū)動接口開發(fā)上層應用即可,類似STM32的hal庫,彌補了原廠這一塊的空缺,并且在驅(qū)動中做了很多容錯性處理,總結(jié)了應用中常見一些問題,可靠性比原廠demo例程更好,可在裸機、RTOS等不同開發(fā)框架下穩(wěn)定運行,能很好的縮短軟件開發(fā)周期。 本文主要針對SDK如何重定義硬件接口和外設參數(shù)進行說明,方便讓大家快速靈活使用聚沃科技SDK。 |
軟件架構(gòu)簡介
聚沃科技SDK框架如下圖所示,底層驅(qū)動為官方提供的外設庫,聚沃科技實現(xiàn)了抽象層驅(qū)動包括MCU_Driver和BSP_Driver,其中MCU_Driver為MCU底層外設驅(qū)動,調(diào)用底層驅(qū)動進行再次封裝,BSP_Driver為板級資源驅(qū)動,調(diào)用MCU_Driver進行再次封裝,便于應用層調(diào)用,應用層及應用層驅(qū)動為上層應用,包括主函數(shù)文件以及相關上層驅(qū)動。該例程架構(gòu)經(jīng)過多層封裝便于讀者開發(fā)中直接使用。

主要功能介紹:
- driver_public.c
該文件主要會初始化延時模塊、系統(tǒng)tick中斷、配套例程的LCD和串口打印,不同系列之間也會根據(jù)芯片特點做一些必要性初始化,比如H7的SDK中還做了cache的使能、中斷向量表到SRAM的copy和偏移、基礎MPU的配置。
在mian函數(shù)開始調(diào)用driver_init即可,產(chǎn)品開發(fā)中不需要LCD和串口打印可配置LCD_DEBUG為0或直接刪除對應代碼:

提供了機器周期延時、us延時、ma延時函數(shù),采用了僅查詢方式實現(xiàn),支持函數(shù)重入、ROTS下調(diào)用等。

提供了定時任務函數(shù)指針可方便增加一些簡單的定時任務,配置時間值并指向函數(shù)即可自動調(diào)用執(zhí)行:

- driver_public.h
測試例程功能時,在該頭文件中可以選擇LCD打印信息,并選擇對應的屏幕類型,例程結(jié)果會顯示在LCD上,不使用LCD時LCD_DEBUG配置0即可;

該文件中預留了分散加載的宏定義,可以方便的指定變量、函數(shù)位置,需要配合工程配置以及SCT文件使用:




- driver_xx.c\bsp_xx.c中定義接口和參數(shù)
在驅(qū)動文件上方提供了注冊接口或參數(shù)的示例,可參考修改即可:
- 普通GPIO:

GPIO_DEF括號內(nèi)內(nèi)容分別是:注冊名稱、PORT、PIN、GPIO模式、默認電平、IO中斷回調(diào)函數(shù);需要增加或者修改可以復制模版后修改名稱和參數(shù)。
調(diào)用驅(qū)動時將注冊名稱指針傳輸調(diào)用:


定義USART時參考模版分別定義TX、RX、DMA通道,USART波特率和模式,如沒有使用DMA任意填寫參數(shù);
通信類外設有三個模式:MODE_POLL、MODE_DMA、MODE_INT可選,根據(jù)需要選擇配置,也可以應用中修改結(jié)構(gòu)體參數(shù)并重初始化來靈活變更模式。

本教程由GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程以及聚沃科技資料板下載,關注聚沃科技官網(wǎng)
-
mcu
+關注
關注
146文章
17984瀏覽量
367036 -
SDK
+關注
關注
3文章
1077瀏覽量
49110 -
驅(qū)動接口
+關注
關注
0文章
10瀏覽量
2702
發(fā)布評論請先 登錄
評論