芯片替换问题
同一个工程在GD32F103和STM32F103上运行,操作FLASH时GD32偶尔会进入HardFault。仿真发现是在解锁FLASH时发生的,这俩芯片的FLASH控制器差异这么大吗? 尽量使用 GD32 用官方固件库。 建议阅读数据手册。 可以联系 GD32 的技术支持 GD32 的 FLASH 解锁对 BSY 位状态更敏感。 GD32F103和STM32F103的FLASH控制器存在差异,可能导致GD32在操作FLASH时偶尔进入HardFault 擦除和写操作速度差异:GD32F103的Flash擦除和写操作比STM32F103慢,但读操作要快。 如果GD32F103的FLASH操作超时设置不当,可能导致在解锁或擦除过程中进入HardFault。 可以尝试修改Flash擦除和编程超时宏定义,如将EraseTimeout和ProgramTimeout设置为更大的值。 内部逻辑和输出波形差异,GD32F103在某些模式下(如SPI主机模式)的内部计数器逻辑可能受CLK引脚电平变化干扰,使得内部逻辑和输出波形发生错误。 虽然这主要影响SPI通信,但也可能暗示GD32F103在内部时序控制上与STM32F103存在差异,这种差异在FLASH操作中也可能体现出来。 GD32F103的外设寄存器映射和寄存器定义可能与STM32F103略有不同。 在操作FLASH时,如果寄存器操作不当(如未正确解锁、擦除或写入),也可能导致进入HardFault。 一般来说GD32F103和STM32F103在电源和复位管理方面也可能存在差异。如果电源不稳定或复位信号异常,也可能影响FLASH操作的稳定性。 这俩应该也不能完全兼容的吧,你这么操作也不行啊
页:
[1]