今天在使用JLINK搭配SEGGER通过SWD接口固化STM32F103C8程序时,出现RAM check failed @ADDRESS 0x2000000问题,结合网上搜索的各种原因,有说接线问题,有说电源问题,有说复位管脚RESET电平问题,还有说是电路设计的SWD接口走线过长的问题,不排除以上网上各位描述的原因。
我的问题最后是通过更新SEGGER版本解决的。
以下详细描述问题的解决过程。
1、通过JTAG口的1管脚(VCC)、7管脚(TMS)、9管脚(TCLK)以及20管脚(GND)连接STM32F103C8的SWD接口。
开始使用SEGGER J-Flash ARM V4.08,先是提示供电电压过低的问题,如下图
这个问题是由于JTAG的1管脚是参考电压输入脚,可以通过给电路板供电解决,也可以将JTAG的1管脚和2管脚进行短接解决,
注意,JLINK内部有一个跳线,可以将JTAG的2脚(USP)和3.3V相连或者和NC相连。
2、解决完供电问题后,进行烧写又提示下面的问题。
经过调查测试,最后重新下载了新版的SEGGER JLINK V6.20h
链接地址是:https://www.segger.com/downloads/jlink/JLink_Windows_V620h.exe
重新测试后,问题解决。