1.簡介
GD32E230 系列是 GD 最新推出的 Cortex_M23 系列產(chǎn)品,該系列資源上與既有的 GD32F1x0以及 GD32F3x0 兼容度非常高。由于 GD32E230 系列主打低功耗和低成本,所以在存量客戶中可能會(huì)有越來越多的客戶會(huì)有從 GD32F1x0 和 GD32F3x0 移植到 GD32E230 系列的需求,本文檔專門針對既有的 GD32F1x0 和 GD32F3x0 代碼如何移植到 GD32E230 做一個(gè)詳細(xì)的介紹;
2.硬件資源對比
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)資源對比
4.外設(shè)地址對比
1. GD32E230 系列最大封裝為 LQFP48,因此 GPIOC 端口不少 GPIO 未 PIN OUT;
2. GD32E230 將 32 位的 TIMER1 裁剪掉,移植時(shí)需要特別注意;
3. GD32E230 系列有一路比較器,GD32F130/330 沒有該資源;
4. GD32E230 系列新增了 1K 的 OTP 區(qū)域;
5.開發(fā)工具版本對比
注意:使用 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 對 GD32E230 系列支持情況:
1. Segger 的 6.12 及以上版本才支持 Cortex M23 內(nèi)核;
2. Segger 當(dāng)前版本沒有 GD32E230 型號(hào),若使用 Segger 下載 E230 系列,可以選擇 GD32F130 系列或者
GD32F103 系列對應(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 讀取需要對齊,考慮到實(shí)用性,只修改和驗(yàn)證如下有提及的 FMC,其他選項(xiàng)字
節(jié)函數(shù)不做支持;
本教程由GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634631 -
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350980 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304797 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355729 -
GD32
+關(guān)注
關(guān)注
7文章
403瀏覽量
24328
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論