GD32与STM32启动时间与IAP优化

需积分: 40 17 下载量 90 浏览量 更新于2024-08-07 收藏 72KB PDF 举报
本文档主要介绍了GD32与STM32在软件移植时需要注意的一些关键点,特别是关于启动时间、IAP(In-Application Programming)在应用中编程的调整,以及ISP(In-System Programming)烧写软件的选择和参数修改。 一、启动时间 GD32与STM32在启动时间上存在差异,为了优化GD32的复位精度,需要调整HSE_STARTUP_TIMEOUT的宏定义。默认值0x0500应当改为0xFFFF。这个宏定义的位置因库版本不同而异,通常在V3.X的库中位于stm32f10x.h头文件,而在V3.0之前的库中则在stm32f10x_rcc.c源文件中的HSEStartUp_TimeOut变量。 二、IAP在应用中编程 由于GD32自身的Flash访问时序特性,其Erase和Program操作所需时间比STM32稍长。因此,需增加EraseTimeout和ProgramTimeout的值,分别由0x000B0000和0x00002000修改为0x000FFFFF和0x0000FFFF。这些宏定义位于stm32f10x_flash.c源文件中。 三、ISP烧写软件 对于GD32,由于其采用较新的芯片内核,可能与2012年之前的老版本ISP软件不兼容。建议使用www.mcuisp.com上提供的最新版本MCUISP,或者使用GD32专门的烧写软件——GigaDevice MCU ISP Programmer,可在相关论坛下载。如果使用自定义ISP软件或脱机编程器,应增加页擦除、整片擦除、字编程和页编程的等待超时时间。 四、延时计数 1. 定时器计数:GD32的定时器计数在相同工作频率下与STM32保持一致。 2. 循环计数:由于GD32的Flash访问速度较快,使用循环计数时,程序执行时间会比STM32更快。为了保持一致性,建议将计数量适当增加40%至50%。 总结: 在从STM32向GD32移植程序时,开发者必须注意上述提到的启动时间、IAP时间设置、ISP软件兼容性以及延时计数的差异。通过这些调整,可以确保移植后的程序在GD32平台上正常运行并保持性能。