GD32与STM32兼容性对比及移植指南

3星 · 超过75%的资源 需积分: 50 765 下载量 156 浏览量 更新于2023-03-03 41 收藏 339KB PDF 举报
"该文件主要讨论了GD32与STM32之间的相似性和差异性,特别是在替换过程中需要注意的事项。" 在嵌入式开发领域,GD32和STM32都是非常流行的基于Cortex-M3内核的微控制器。这两款芯片在很多方面具有高度的兼容性,使得STM32的代码可以在GD32上运行,但可能需要进行一些小的调整。 1. **相同点** - **引脚定义**:相同型号的GD32和STM32管脚定义相同,这意味着在硬件设计时可以互换使用。 - **内核版本**:两者都使用Cortex-M3内核,GD32的内核版本为R2P1,修复了R1P1版本的一些问题。 - **寄存器和IP**:芯片内部寄存器以及外部IP寄存器的逻辑地址相同,尽管物理地址可能略有不同。 - **函数库**:基本的函数库是相同的,但可能需要更新头文件以适应GD32。 - **编译工具**:GD32和STM32都支持相同的编译工具,如Keil MDK和IAR。 - **型号命名**:两款芯片的型号命名规则完全一致。 2. **外围硬件差异** - **电压范围**:GD32的ADC工作电压范围较宽,内核电压为1.2V,而STM32的内核电压为1.8V。 - **BOOT0管脚**:在从Flash运行程序时,STM32的BOOT0管脚可以悬空,而GD32则需要外部下拉至低电平。 - **ESD参数**:GD32的静电放电防护等级更高,对人体模式和空气模式的耐受电压更强。 3. **内部结构差异** - **启动时间**:GD32的启动时间和STM32相同,但可能需要更长的上电时间配置,以适应其更快的运行速度。 - **主频**:GD32F10系列的最高主频为108MHz,而STM32F10系列最高为72MHz。 - **Flash擦除时间**:GD32的Flash擦除一页的时间比STM32长。 - **FLASH容量**:GD32的最大Flash容量为3MB,超过了STM32F10系列。 - **SRAM**:GD32F103系列和大容量系列的SRAM达到96KB。 - **VB外扩总线FSMC**:GD32在100引脚封装中即配置了总线输出,而STM32在144引脚且Flash容量大于256KB时才有。 4. **功耗对比** - **睡眠模式**:GD32在睡眠模式下的功耗略高于STM32。 - **深度睡眠模式**:GD32在深度睡眠模式下功耗显著低于STM32。 - **待机模式**:GD32的待机模式功耗也较低。 - **运行功耗**:在相同的主频下,GD32的运行功耗稍低。 5. **内部FLASH差异** - **ISP**:GD32的ISP擦写时间与STM32有所不同,需要使用更新的ISP软件。 - **IAP**:在In-Application Programming(IAP)方面,两者的擦写时间相同,但GD32可能需要按字写入。 在将STM32的项目迁移到GD32时,开发者需要注意上述差异,并对代码进行相应的适配,包括但不限于更新启动配置、功耗管理、Flash操作以及可能的硬件接口调整。此外,更新或修改相关的驱动库和固件更新工具也是必要的。通过这些调整,开发者可以充分利用GD32的特性,如更高的主频、更大的Flash容量和更低的功耗,同时确保项目的顺利运行。