0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

聚沃科技 2024-09-04 09:38 次阅读

1.简介

GD32E230 系列是 GD 最新推出的 Cortex_M23 系列产品,该系列资源上与既有的 GD32F1x0以及 GD32F3x0 兼容度非常高。由于 GD32E230 系列主打低功耗和低成本,所以在存量客户中可能会有越来越多的客户会有从 GD32F1x0 和 GD32F3x0 移植到 GD32E230 系列的需求,本文档专门针对既有的 GD32F1x0 和 GD32F3x0 代码如何移植到 GD32E230 做一个详细的介绍;

2.硬件资源对比

wKgaombXtnCASg_qAACdz3XP_Wg500.png

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

2. LQFP32、QFN32 封装不能完全兼容,QFN32 比 LQFP32 多两个 Pin;

3. LQFP48 在 E230 上面是 VDD,在 GD32F330/130 上是 VBAT,也就是说 E230 不支持掉电运行 RTC;

3.系统资源对比

wKgZombXtouAdSz2AABmKt9kl2Q222.png

4.外设地址对比

wKgaombXtpeADZplAABfWGPTaZ0379.png

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

2. GD32E230 将 32 位的 TIMER1 裁剪掉,移植时需要特别注意;

3. GD32E230 系列有一路比较器,GD32F130/330 没有该资源;

4. GD32E230 系列新增了 1K 的 OTP 区域;

5.开发工具版本对比

wKgaombXtqeAMomCAAApgMs_9F8784.png

注意:使用 Keil 5.25 有可能会出现在 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)”,两者内容是否一致,如果不一致手动添加相应内容。

wKgaombXtrmAKY83AAAry3g_6Zc261.png

Segger 对 GD32E230 系列支持情况:

1. Segger 的 6.12 及以上版本才支持 Cortex M23 内核;

2. Segger 当前版本没有 GD32E230 型号,若使用 Segger 下载 E230 系列,可以选择 GD32F130 系列或者

GD32F103 系列对应 Flash 容量产品;

3. Segger 6.20 及以上版本才有添加 GD 相关型号,但不支持软件设置读保护,需通过程序自行设定。

6. GD32F1x0_Firmware_Library_V2.0.0 移植步骤

1. 电脑安装 keil 5.25 及以上版本 MDK、GD32E230 插件

2. 原有工程项目可能是 keil 4 建立的,直接在 keil 4 工程后缀名添加 x,即变成 keil 5 项目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

3. 根据实际情况修改使用的芯片型号以及 C 语言语法为 C99;

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

4. 拷贝 Cortex M23 内核支持文件至 x: \GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS

wKgZombXtu2AJPxVAACws8mhpb8249.png

5. 修改“gd32f1x0.h”头文件内容

wKgZombXtvuAchKhAAB7I2mJps0682.png

gd32f1x0.h头文件修改内容

wKgaombXtwGACyioAACKgnOYS0A527.png

6. gd32f1x0_misc.c 文件调整内容

wKgZombXtw6AZD5vAAEs0YKvSy0574.pngwKgZombXtyqAfqXfAAFzMUwmByo663.png

特别注意事项

E230不支持中断分组,所以固件库中的void NVIC_PRIGroup_Enable(uint32_t NVIC_PRIGroup)不能调用,而且E230仅支持4级抢占优先级,不支持子优先级

7. “system_gd32f1x0.c”文件修改内容

GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期

0-24M: 插入 0 个等待周期

24-48M: 插入 1 个等待周期

48-72M: 插入 2 个等待周期

因此配置代码时需要根据主频来调整等待周期,相关做法如下:

wKgZombXt0OAcFUbAAHHmhSIXrs568.png

8. ”gd32f1x0_fmc.c”文件修改内容

GD32E230 因为 Flash 只支持 32 位和 64 位编程,所以原有固件库中的选项字节操作需要调整,原有的

半字编程不支持,考虑到实用性,只修改和验证如下有提及的 FMC,其他选项字节函数不做支持;

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

7. GD32F1x0_Firmware_Library_V3.0.0 移植步骤

1. 电脑安装 keil 5.25 及以上版本 MDK 及 GD32E230 插件

2. 原有工程项目可能是 keil 4 建立的,直接在 keil 4 工程后缀名添加 x,即变成 keil 5 项目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

3 根据实际情况修改使用的芯片型号以及 C 语言语法为 C99;

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

4 拷贝 Cortex M23 内核支持文件至 x: \GD32F1x0_Firmware_Library_V2.0.0\Firmware\CMSIS

wKgZombXtu2AJPxVAACws8mhpb8249.png

5 修改“gd32f1x0.h”头文件内容

wKgZombXtvuAchKhAAB7I2mJps0682.png

wKgZombXt7WAEAljAACKhY51wEQ729.png

6 gd32f1x0_misc.c 文件调整内容

wKgaombXuFyAZQnuAADKOAtVYvk686.pngwKgZombXuG6Acht9AADV1X5ErPQ313.png

特别注意事项

E230不支持中断分组,所以固件库中的void nvic_priority_group_set(uint32_t nvic_prigroup)不能调用,而且E230仅支持4级抢占优先级,不支持子优先级

7 “system_gd32f1x0.c”文件修改内容

GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期

0-24M: 插入 0 个等待周期

24-48M: 插入 1 个等待周期

48-72M: 插入 2 个等待周期

因此配置代码时需要根据主频来调整等待周期,相关做法如下:

wKgZombXuJqAIcn0AAEPxUdkerM154.png

8.”gd32f1x0_fmc.c”文件修改内容

GD32E230 因为 Flash 只支持 32 位和 64 位编程,所以原有固件库中的选项字节操作需要调整,原有的半字编程不支持,考虑到实用性,只修改和验证如下有提及的 FMC,其他选项字节函数不做支持;

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

8. GD32F3x0_Firmware_Library 移植步骤

1. 电脑安装 keil 5.25 及以上版本 MDK 及 GD32E230 插件

2. 原有工程项目可能是 keil 4 建立的,直接在 keil 4 工程后缀名添加 x,即变成 keil 5 项目;

wKgZombXtsyAeGSVAABsube-Nf0540.png

8 根据实际情况修改使用的芯片型号以及 C 语言语法为 C99;

wKgZombXttSAAwQtAAB7u83DRW4859.pngwKgaombXttSAWtsPAACogb8E3o0442.png

9 拷贝 Cortex M23 内核支持文件至 x: \GD32F3x0_Firmware_Library\Firmware\CMSIS

wKgZombXtu2AJPxVAACws8mhpb8249.png

10 修改“gd32f3x0.h”头文件内容

wKgaombXuViAbI0AAACU7_OoPn8468.png

11 gd32f3x0_misc.c 文件调整内容

wKgaombXuWWATeBNAADKwaXxVNo535.pngwKgaombXuWyAa6pQAADWM_r9UFM667.png

特别注意事项

E230不支持中断分组,所以固件库中的void nvic_priority_group_set(uint32_t nvic_prigroup)不能调用,而且E230仅支持4级抢占优先级,不支持子优先级

12 “system_gd32f3x0.c”文件修改内容

GD32F130/330 的 Flash 是零等待的,GD32E230 系列需要配置 Flash 插入等待周期

0-24M: 插入 0 个等待周期

24-48M: 插入 1 个等待周期

48-72M: 插入 2 个等待周期

因此配置代码时需要根据主频来调整等待周期,相关做法如下:

wKgaombXuXqAHSqBAAEOhqvUrnc897.png

8.”gd32f3x0_fmc.c”文件修改内容

GD32E230 因为 Flash 只支持 32 位和 64 位编程,所以原有固件库中的选项字节操作需要调整,原有的

半字编程不支持。Flash 读取需要对齐,考虑到实用性,只修改和验证如下有提及的 FMC,其他选项字

节函数不做支持;

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

教程GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6037

    文章

    44559

    浏览量

    635497
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17152

    浏览量

    351254
  • 嵌入式
    +关注

    关注

    5083

    文章

    19129

    浏览量

    305392
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    356149
  • GD32
    +关注

    关注

    7

    文章

    403

    浏览量

    24361
收藏 人收藏

    评论

    相关推荐

    GD32F1x0系列固件库

    GD32F1x0系列固件库包含GD32F130、GD32F150、GD32F170以及GD32F190四个系列的最新版库函数。
    发表于 08-21 09:16 123次下载

    GD32F10x系列软件移植GD32F1x0操作说明

    本文介绍了GD32F10x系列到GD32F1x0系列软件移植操作。
    发表于 08-28 15:57 18次下载

    STM32F10x系列软件移植GD32F1x0系列操作说明

    本文档介绍了STM32F10x系列到GD32F1x0系列软件移植操作。
    发表于 08-28 16:12 54次下载

    STM32F0xx系列移植GD32F1x0系列软件操作说明

    本文档介绍了STM32F0xx系列到GD32F1x0系列的软件移植操作。
    发表于 08-28 16:17 26次下载

    GD32F3x0 用户 手册

    GD32F3x0 用户 手册
    发表于 02-23 18:44 2次下载
    <b class='flag-5'>GD32F3x0</b> 用户 手册

    GD32F1x0 用户 手册

    GD32F1x0 用户 手册
    发表于 02-23 18:52 0次下载
    <b class='flag-5'>GD32F1x0</b> 用户 手册

    AN046 GD32E230系列移植GD32F3x0系列

    AN046 GD32E230系列移植GD32F3x0系列
    发表于 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 固件库 用户 指南

    GD32F3x0 固件库 用户 指南
    发表于 02-23 19:04 2次下载
    <b class='flag-5'>GD32F3x0</b> 固件库 用户 指南

    兆易创新GD32F3x0系列MCU用户手册

    兆易创新GD32F3x0系列MCU用户手册GD32F3x0系列MCU用户手册
    发表于 10-19 17:26 1次下载

    GD32F3x0资料分享

    电子发烧友网站提供《GD32F3x0资料分享.rar》资料免费下载
    发表于 06-28 10:48 0次下载

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

    GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序
    的头像 发表于 08-31 09:36 1481次阅读
    【<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 系列的需求,本文 档专门针对既有的 GD32E230 代码如何移植
    的头像 发表于 09-03 10:05 1161次阅读
    【<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

    本应用笔记旨在帮助您快速将基于 GD32F10x 2.0 版本及以上固件库开发的应用程序GD32F10x 系列微控制器移植
    的头像 发表于 09-05 09:40 522次阅读
    【<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 系列

    对比、外设及性能对比以及 STM32F10x 移植 GD32F30x移植步骤,旨在让开发
    的头像 发表于 09-07 09:57 733次阅读
    【<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 对比 STM32F030 有着很好的兼容性和更高的性价比,内核和外设都有所增强。本人曾做过产品的 MCU 替换,将基于 STM32F0xx 1.5.0 固件库的应用程
    的头像 发表于 09-07 10:24 676次阅读
    【<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>系列