1.背景
SEGGER公司的jlink工具配合J-Flash软件可以实现对MCU内部flash的固件烧录回读,我司产品设计中MCU通常需要外挂一块spi flash用以存储IC的固件程序,考虑到生产烧录的便捷性以及后续开发测试的高效性,现需要支持通过J-Flash工具烧录MCU外挂的SPI flash。
2.实现方案
2.1.硬件结构框图
2.2.下载算法实现
参考资料:
(1)安富莱 《第84章 STM32H7 的 SPI 总线应用之 SPI Flash的 MDK 下载算法制作》
(2)网页:https://linmingjie.cn/index.php/archives/341/
具体实现是基于GD32E103的boot工程进行的修改,参考MDK工程提供的下载算法模版中的工程配置。
遇到问题:
(1)MDK工程中C/C++配置中需要定义VECT_IN_SRAM,即中断向量在RAM中,因为下载算法是运行在MCU的RAM空间中。
2.3.Jlink Device增加
(1)找到jlink驱动安装目录,在JLinkDevices.xml文件增加设备支持,如下图,本次实现基于GD32E503-SPI Flash实现,增加相应的设备。
(2)新建目录,将生成的下载算法存放于该目录下。
经过以上步骤,J-Flash工具即可找到该器件以及下载算法,如下图。
3.测试验证
生成一个7M多的二进制文件,使用J-Flash工具擦除,烧写,读取,校验,连续测试10多次没有出现错误。