0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【GD32 MCU 移植教程】6、從GD32F1x0和GD32F3x0移植到GD32E230

聚沃科技 ? 2024-09-04 09:38 ? 次閱讀

1.簡(jiǎn)介

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

2.硬件資源對(duì)比

wKgaombXtnCASg_qAACdz3XP_Wg500.png

1. TSSOP20 和 QFN28PIN 的封裝兼容,但 E230 系列 PA9、PA10 可以映射為 PA11、PA12;

2. LQFP32、QFN32 封裝不能完全兼容,QFN32 比 LQFP32 多兩個(gè) Pin;

3. LQFP48 在 E230 上面是 VDD,在 GD32F330/130 上是 VBAT,也就是說(shuō) E230 不支持掉電運(yùn)行 RTC;

3.系統(tǒng)資源對(duì)比

wKgZombXtouAdSz2AABmKt9kl2Q222.png

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

wKgaombXtpeADZplAABfWGPTaZ0379.png

1. GD32E230 系列最大封裝為 LQFP48,因此 GPIOC 端口不少 GPIO 未 PIN OUT;

2. GD32E230 將 32 位的 TIMER1 裁剪掉,移植時(shí)需要特別注意;

3. GD32E230 系列有一路比較器,GD32F130/330 沒(méi)有該資源;

4. GD32E230 系列新增了 1K 的 OTP 區(qū)域;

5.開發(fā)工具版本對(duì)比

wKgaombXtqeAMomCAAApgMs_9F8784.png

注意:使用 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)容。

wKgaombXtrmAKY83AAAry3g_6Zc261.png

Segger 對(duì) GD32E230 系列支持情況:

1. Segger 的 6.12 及以上版本才支持 Cortex M23 內(nèi)核;

2. Segger 當(dāng)前版本沒(méi)有 GD32E230 型號(hào),若使用 Segger 下載 E230 系列,可以選擇 GD32F130 系列或者

GD32F103 系列對(duì)應(yīng) Flash 容量產(chǎn)品;

3. Segger 6.20 及以上版本才有添加 GD 相關(guān)型號(hào),但不支持軟件設(shè)置讀保護(hù),需通過(guò)程序自行設(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)目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

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

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

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

wKgZombXtu2AJPxVAACws8mhpb8249.png

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

wKgZombXtvuAchKhAAB7I2mJps0682.png

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

wKgaombXtwGACyioAACKgnOYS0A527.png

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

wKgZombXtw6AZD5vAAEs0YKvSy0574.pngwKgZombXtyqAfqXfAAFzMUwmByo663.png

特別注意事項(xiàng)

E230不支持中斷分組,所以固件庫(kù)中的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ù)主頻來(lái)調(diào)整等待周期,相關(guān)做法如下:

wKgZombXt0OAcFUbAAHHmhSIXrs568.png

8. ”gd32f1x0_fmc.c”文件修改內(nèi)容

GD32E230 因?yàn)?Flash 只支持 32 位和 64 位編程,所以原有固件庫(kù)中的選項(xiàng)字節(jié)操作需要調(diào)整,原有的

半字編程不支持,考慮到實(shí)用性,只修改和驗(yàn)證如下有提及的 FMC,其他選項(xiàng)字節(jié)函數(shù)不做支持;

wKgZombXt1mARXtmAAEhejdfh3M299.pngwKgaombXt1mAf9AZAADlN3KYmao425.pngwKgZombXt1mAK44wAAEaF-WB-HA749.pngwKgaombXt1mAdbdqAADPThou43M268.pngwKgZombXt1mACjMOAACjQzaumYc413.png

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)目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

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

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

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

wKgZombXtu2AJPxVAACws8mhpb8249.png

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

wKgZombXtvuAchKhAAB7I2mJps0682.png

wKgZombXt7WAEAljAACKhY51wEQ729.png

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

wKgaombXuFyAZQnuAADKOAtVYvk686.pngwKgZombXuG6Acht9AADV1X5ErPQ313.png

特別注意事項(xiàng)

E230不支持中斷分組,所以固件庫(kù)中的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ù)主頻來(lái)調(diào)整等待周期,相關(guān)做法如下:

wKgZombXuJqAIcn0AAEPxUdkerM154.png

8.”gd32f1x0_fmc.c”文件修改內(nèi)容

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

wKgZombXt1mARXtmAAEhejdfh3M299.pngwKgaombXt1mAf9AZAADlN3KYmao425.pngwKgZombXt1mAK44wAAEaF-WB-HA749.pngwKgaombXt1mAdbdqAADPThou43M268.pngwKgZombXt1mACjMOAACjQzaumYc413.png

8. GD32F3x0_Firmware_Library 移植步驟

1. 電腦安裝 keil 5.25 及以上版本 MDK 及 GD32E230 插件

2. 原有工程項(xiàng)目可能是 keil 4 建立的,直接在 keil 4 工程后綴名添加 x,即變成 keil 5 項(xiàng)目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

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

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

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

wKgZombXtu2AJPxVAACws8mhpb8249.png

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

wKgaombXuViAbI0AAACU7_OoPn8468.png

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

wKgaombXuWWATeBNAADKwaXxVNo535.pngwKgaombXuWyAa6pQAADWM_r9UFM667.png

特別注意事項(xiàng)

E230不支持中斷分組,所以固件庫(kù)中的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ù)主頻來(lái)調(diào)整等待周期,相關(guān)做法如下:

wKgaombXuXqAHSqBAAEOhqvUrnc897.png

8.”gd32f3x0_fmc.c”文件修改內(nèi)容

GD32E230 因?yàn)?Flash 只支持 32 位和 64 位編程,所以原有固件庫(kù)中的選項(xiàng)字節(jié)操作需要調(diào)整,原有的

半字編程不支持。Flash 讀取需要對(duì)齊,考慮到實(shí)用性,只修改和驗(yàn)證如下有提及的 FMC,其他選項(xiàng)字

節(jié)函數(shù)不做支持;

wKgZombXuYyAQnBbAADycEsvUDM524.pngwKgaombXuZKAd-8bAADB42Ujaz8536.pngwKgZombXuZiAAzi7AAISWrjndsU585.pngwKgaombXuZyAL4GCAAEdePzTJYI068.pngwKgaombXuaGAb7uNAACbPMHG4_E281.png

教程GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635214
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351182
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305147
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    355980
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24351
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GD32F1x0系列固件庫(kù)

    GD32F1x0系列固件庫(kù)包含GD32F130、GD32F150、GD32F170以及GD32F190四個(gè)系列的最新版庫(kù)函數(shù)。
    發(fā)表于 08-21 09:16 ?123次下載

    GD32F10x系列軟件移植GD32F1x0操作說(shuō)明

    本文介紹了GD32F10x系列到GD32F1x0系列軟件移植操作。
    發(fā)表于 08-28 15:57 ?18次下載

    STM32F10x系列軟件移植GD32F1x0系列操作說(shuō)明

    本文檔介紹了STM32F10x系列到GD32F1x0系列軟件移植操作。
    發(fā)表于 08-28 16:12 ?54次下載

    STM32F0xx系列移植GD32F1x0系列軟件操作說(shuō)明

    本文檔介紹了STM32F0xx系列到GD32F1x0系列的軟件移植操作。
    發(fā)表于 08-28 16:17 ?26次下載

    GD32F3x0 用戶 手冊(cè)

    GD32F3x0 用戶 手冊(cè)
    發(fā)表于 02-23 18:44 ?2次下載
    <b class='flag-5'>GD32F3x0</b> 用戶 手冊(cè)

    GD32F1x0 用戶 手冊(cè)

    GD32F1x0 用戶 手冊(cè)
    發(fā)表于 02-23 18:52 ?0次下載
    <b class='flag-5'>GD32F1x0</b> 用戶 手冊(cè)

    AN046 GD32E230系列移植GD32F3x0系列

    AN046 GD32E230系列移植GD32F3x0系列
    發(fā)表于 02-23 19:00 ?0次下載
    AN046 <b class='flag-5'>GD32E230</b>系列<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32F3x0</b>系列

    GD32F3x0 固件庫(kù) 用戶 指南

    GD32F3x0 固件庫(kù) 用戶 指南
    發(fā)表于 02-23 19:04 ?2次下載
    <b class='flag-5'>GD32F3x0</b> 固件庫(kù) 用戶 指南

    兆易創(chuàng)新GD32F3x0系列MCU用戶手冊(cè)

    兆易創(chuàng)新GD32F3x0系列MCU用戶手冊(cè)GD32F3x0系列MCU用戶手冊(cè)
    發(fā)表于 10-19 17:26 ?1次下載

    GD32F3x0資料分享

    電子發(fā)燒友網(wǎng)站提供《GD32F3x0資料分享.rar》資料免費(fèi)下載
    發(fā)表于 06-28 10:48 ?0次下載

    GD32 MCU 移植教程】2、 GD32F303 移植 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產(chǎn)品,該系列資源上與 GD32F303 兼容度非常高,本應(yīng)用筆記旨在幫助您快速將應(yīng)用程序
    的頭像 發(fā)表于 08-31 09:36 ?1472次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】2、<b class='flag-5'>從</b> <b class='flag-5'>GD32F</b>303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F</b>503

    GD32 MCU 移植教程】5、GD32E230 系列移植 GD32F330 系列

    移植 GD32F330 系列的需求,本文 檔專門針對(duì)既有的 GD32E230 代碼如何移植
    的頭像 發(fā)表于 09-03 10:05 ?1125次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】5、<b class='flag-5'>GD32E230</b> 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F</b>330 系列

    GD32 MCU 移植教程】7、 GD32F10x 移植 GD32E103

    本應(yīng)用筆記旨在幫助您快速將基于 GD32F10x 2.0 版本及以上固件庫(kù)開發(fā)的應(yīng)用程序GD32F10x 系列微控制器移植
    的頭像 發(fā)表于 09-05 09:40 ?514次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】7、<b class='flag-5'>從</b> <b class='flag-5'>GD32F10x</b> <b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32E</b>103

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

    對(duì)比、外設(shè)及性能對(duì)比以及 STM32F10x 移植 GD32F30x移植步驟,旨在讓開發(fā)
    的頭像 發(fā)表于 09-07 09:57 ?715次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】9、<b class='flag-5'>從</b> STM32<b class='flag-5'>F10x</b> 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F30x</b> 系列

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

    GD32E230 對(duì)比 STM32F030 有著很好的兼容性和更高的性價(jià)比,內(nèi)核和外設(shè)都有所增強(qiáng)。本人曾做過(guò)產(chǎn)品的 MCU 替換,將基于 STM32F0xx 1.5.0 固件庫(kù)的應(yīng)用程
    的頭像 發(fā)表于 09-07 10:24 ?666次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】10、<b class='flag-5'>從</b>STM32<b class='flag-5'>F</b>030系列<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32E230</b>系列