1.簡介
GD32E230 系列是 GD 最新推出的 Cortex_M23 系列產(chǎn)品,該系列資源上與既有的 GD32F1x0以及 GD32F3x0 兼容度非常高。由于 GD32E230 系列主打低功耗和低成本,所以在存量客戶中可能會有越來越多的客戶會有從 GD32F1x0 和 GD32F3x0 移植到 GD32E230 系列的需求,本文檔專門針對既有的 GD32F1x0 和 GD32F3x0 代碼如何移植到 GD32E230 做一個詳細(xì)的介紹;
2.硬件資源對比

1. TSSOP20 和 QFN28PIN 的封裝兼容,但 E230 系列 PA9、PA10 可以映射為 PA11、PA12;
2. LQFP32、QFN32 封裝不能完全兼容,QFN32 比 LQFP32 多兩個 Pin;
3. LQFP48 在 E230 上面是 VDD,在 GD32F330/130 上是 VBAT,也就是說 E230 不支持掉電運行 RTC;
3.系統(tǒng)資源對比

4.外設(shè)地址對比

1. GD32E230 系列最大封裝為 LQFP48,因此 GPIOC 端口不少 GPIO 未 PIN OUT;
2. GD32E230 將 32 位的 TIMER1 裁剪掉,移植時需要特別注意;
3. GD32E230 系列有一路比較器,GD32F130/330 沒有該資源;
4. GD32E230 系列新增了 1K 的 OTP 區(qū)域;
5.開發(fā)工具版本對比

注意:使用 Keil 5.25 有可能會出現(xiàn)在 Debug 下拉選項中找不到 J-LINK/J-TRACE Cortex 的情況。遇到這種情況可以手動打開 keil5 安裝目錄x:\Keil_v5\TOOLS.INI 文件,首先查看[ARM]下”CPUDLL3=SARMV8M.DLL(TDRV2,TDRV4,TDRV13,TDRV14,TDRV15,TDRV16)”選項,然后查看[ARMADS]下面“CPUDLL3=SARMV8M.DLL(TDRV2 ,TDRV13,TDRV14,TDRV15,TDRV16)”,兩者內(nèi)容是否一致,如果不一致手動添加相應(yīng)內(nèi)容。

Segger 對 GD32E230 系列支持情況:
1. Segger 的 6.12 及以上版本才支持 Cortex M23 內(nèi)核;
2. Segger 當(dāng)前版本沒有 GD32E230 型號,若使用 Segger 下載 E230 系列,可以選擇 GD32F130 系列或者
GD32F103 系列對應(yīng) Flash 容量產(chǎn)品;
3. Segger 6.20 及以上版本才有添加 GD 相關(guān)型號,但不支持軟件設(shè)置讀保護(hù),需通過程序自行設(shè)定。
6. GD32F1x0_Firmware_Library_V2.0.0 移植步驟
1. 電腦安裝 keil 5.25 及以上版本 MDK、GD32E230 插件
2. 原有工程項目可能是 keil 4 建立的,直接在 keil 4 工程后綴名添加 x,即變成 keil 5 項目;

3. 根據(jù)實際情況修改使用的芯片型號以及 C 語言語法為 C99;


4. 拷貝 Cortex M23 內(nèi)核支持文件至 x: \GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS

5. 修改“gd32f1x0.h”頭文件內(nèi)容

gd32f1x0.h頭文件修改內(nèi)容

6. gd32f1x0_misc.c 文件調(diào)整內(nèi)容


特別注意事項
E230不支持中斷分組,所以固件庫中的void NVIC_PRIGroup_Enable(uint32_t NVIC_PRIGroup)不能調(diào)用,而且E230僅支持4級搶占優(yōu)先級,不支持子優(yōu)先級
7. “system_gd32f1x0.c”文件修改內(nèi)容
GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期
0-24M: 插入 0 個等待周期
24-48M: 插入 1 個等待周期
48-72M: 插入 2 個等待周期
因此配置代碼時需要根據(jù)主頻來調(diào)整等待周期,相關(guān)做法如下:

8. ”gd32f1x0_fmc.c”文件修改內(nèi)容
GD32E230 因為 Flash 只支持 32 位和 64 位編程,所以原有固件庫中的選項字節(jié)操作需要調(diào)整,原有的
半字編程不支持,考慮到實用性,只修改和驗證如下有提及的 FMC,其他選項字節(jié)函數(shù)不做支持;





7. GD32F1x0_Firmware_Library_V3.0.0 移植步驟
1. 電腦安裝 keil 5.25 及以上版本 MDK 及 GD32E230 插件
2. 原有工程項目可能是 keil 4 建立的,直接在 keil 4 工程后綴名添加 x,即變成 keil 5 項目;

3 根據(jù)實際情況修改使用的芯片型號以及 C 語言語法為 C99;


4 拷貝 Cortex M23 內(nèi)核支持文件至 x: \GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS

5 修改“gd32f1x0.h”頭文件內(nèi)容


6 gd32f1x0_misc.c 文件調(diào)整內(nèi)容


特別注意事項
E230不支持中斷分組,所以固件庫中的void nvic_priority_group_set(uint32_t nvic_prigroup)不能調(diào)用,而且E230僅支持4級搶占優(yōu)先級,不支持子優(yōu)先級
7 “system_gd32f1x0.c”文件修改內(nèi)容
GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期
0-24M: 插入 0 個等待周期
24-48M: 插入 1 個等待周期
48-72M: 插入 2 個等待周期
因此配置代碼時需要根據(jù)主頻來調(diào)整等待周期,相關(guān)做法如下:

8.”gd32f1x0_fmc.c”文件修改內(nèi)容
GD32E230 因為 Flash 只支持 32 位和 64 位編程,所以原有固件庫中的選項字節(jié)操作需要調(diào)整,原有的半字編程不支持,考慮到實用性,只修改和驗證如下有提及的 FMC,其他選項字節(jié)函數(shù)不做支持;





8. GD32F3x0_Firmware_Library 移植步驟
1. 電腦安裝 keil 5.25 及以上版本 MDK 及 GD32E230 插件
2. 原有工程項目可能是 keil 4 建立的,直接在 keil 4 工程后綴名添加 x,即變成 keil 5 項目;

8 根據(jù)實際情況修改使用的芯片型號以及 C 語言語法為 C99;


9 拷貝 Cortex M23 內(nèi)核支持文件至 x: \GD32F3x0_Firmware_Library\Firmware\CMSIS

10 修改“gd32f3x0.h”頭文件內(nèi)容

11 gd32f3x0_misc.c 文件調(diào)整內(nèi)容


特別注意事項
E230不支持中斷分組,所以固件庫中的void nvic_priority_group_set(uint32_t nvic_prigroup)不能調(diào)用,而且E230僅支持4級搶占優(yōu)先級,不支持子優(yōu)先級
12 “system_gd32f3x0.c”文件修改內(nèi)容
GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期
0-24M: 插入 0 個等待周期
24-48M: 插入 1 個等待周期
48-72M: 插入 2 個等待周期
因此配置代碼時需要根據(jù)主頻來調(diào)整等待周期,相關(guān)做法如下:

8.”gd32f3x0_fmc.c”文件修改內(nèi)容
GD32E230 因為 Flash 只支持 32 位和 64 位編程,所以原有固件庫中的選項字節(jié)操作需要調(diào)整,原有的
半字編程不支持。Flash 讀取需要對齊,考慮到實用性,只修改和驗證如下有提及的 FMC,其他選項字
節(jié)函數(shù)不做支持;





本教程由GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44997瀏覽量
650767 -
mcu
+關(guān)注
關(guān)注
146文章
17985瀏覽量
367349 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19678瀏覽量
317789 -
STM32
+關(guān)注
關(guān)注
2295文章
11032瀏覽量
365228 -
GD32
+關(guān)注
關(guān)注
7文章
421瀏覽量
25525
發(fā)布評論請先 登錄
【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x

GD32F1x0系列固件庫
兆易創(chuàng)新GD32F3x0系列MCU用戶手冊
【GD32 MCU 移植教程】7、從 GD32F10x 移植到 GD32E103

【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列

【GD32 MCU 移植教程】10、從STM32F030系列移植到GD32E230系列

從GD32E230系列移植到GD32E235系列

基于GD32F3x0系列的IEC60730 ClassB庫移植指南

AN169 從GD32E230系列移植到GD32E235系列

評論