请教正点原子大哥,STM32F405RGT6 可以用SWD仿真,但是不能用JTAG仿真,是什么原因呢?

2019-07-21 05:11发布

如题,我用的是STM32F405RGT6,之前的产品是SWD模式仿真,一切都很正常,这次新的产品的的硬件接口使用的是JTAG模式,但是没法仿真,感觉是没找到芯片,有如下现象:
1.开始仿真程序时,出现j-flash arm v4.66对话框,显示unexpected  core ID
2.将JTAG的硬件引脚的SWDIO,SWDCLK,VCC,GND,RESET,直接接在JTAG上面,在MDK中使用SWD模式,仿真调试都正常。
3.在options for target "stm32f405"->debug->settings->jtag device chain一栏中没有发现芯片显示
4.怀疑是不是jitag的复用功能配置有误,之前使用SWD模式调试正常时的代码如下:
GPIOA->AFR[1] = (GPIO_AF_USART1 << 4)  | (GPIO_AF_USART1 << 8) | (GPIO_AF_SWJ << 20) | (GPIO_AF_SWJ << 24) | (GPIO_AF_SWJ << 28);  
 // USART JTMS JTCK  JTDI                         

 GPIOB->AFR[0] = (GPIO_AF_SWJ << 12) | (GPIO_AF_SWJ << 16);  
//PB3: JTDO, PB4:JTRST
但是这次仿真程序是下载到新的芯片中的,应该没有以前程序的影响吧,这个原因感觉有点不通
5.因为STM32F405RGT6和STM32F103RCT6的引脚是兼容的,所以替换单片机为STM32F103,使用JTAG模式进行调试仿真也很正常。

这个问题已经纠结好几天了,没有解决,麻烦正点原子大哥帮我分析一下,谢谢
0条回答

一周热门 更多>