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

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

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

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

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

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

3. 根據(jù)實(shí)際情況修改使用的芯片型號(hào)以及 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)容


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

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





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

3 根據(jù)實(shí)際情況修改使用的芯片型號(hào)以及 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)容


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

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





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

8 根據(jù)實(shí)際情況修改使用的芯片型號(hào)以及 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)容


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

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





本教程由GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44960瀏覽量
648745 -
mcu
+關(guān)注
關(guān)注
146文章
17915瀏覽量
362533 -
嵌入式
+關(guān)注
關(guān)注
5144文章
19597瀏覽量
316120 -
STM32
+關(guān)注
關(guān)注
2291文章
11022瀏覽量
363399 -
GD32
+關(guān)注
關(guān)注
7文章
420瀏覽量
25303
發(fā)布評(píng)論請(qǐng)先 登錄
【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x

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

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

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

從GD32E230系列移植到GD32E235系列

AN169 從GD32E230系列移植到GD32E235系列

評(píng)論