KEIL+SWD+JLINK仿真不能烧写

2019-07-14 14:52发布



刚接触STM32F407, 在下载和在线调试阶段碰到了问题,请求帮助,具体如下:


1、第一次烧写很顺利,程序烧写进去,好像也可以进行在线调试;
2、第二次烧写时就不能烧写进去,提示“No Cortex-M  SW device found”.  经过寻求帮助得以解决,方法如下:
        (1)B0拉高,按一下复位按钮;(2)B0拉低, 点击烧写,即可烧写进去。
          原因可能是SWDIO和SWDCLK被设置为IO口了, 但是我下载一个什么都没有的空程序若不按照上面的方法也是             写不进去。即使成功下载了,按下KEIL的仿真按钮,也是提示:No Cortex-M  SW device found”。 说明SWD和芯片的链接又断开了。


3、有成功使用SWD+JLINK进行仿真的麻烦帮助下,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
60user22
1楼-- · 2019-07-15 10:33
dsdaiztt 发表于 2019-1-2 06:30
我也设置了,但是没有起作用,不知道是不是代码写的不对,请看如下:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能PA的时钟
  

最后面的两行remap设置,需要打开remap的时钟,F103是这样的:
RCC->APB2ENR |=  RCC_APB2ENR_AFIOEN;
F407的,你要查一查。
60user22
2楼-- · 2019-07-15 11:26
xuxuede 发表于 1970-1-1 08:00

后面的两行可能不对,我F103是设置寄存器,而不是设置GPIO,像这样:
  RCC->APB2ENR |=  RCC_APB2ENR_AFIOEN;
  AFIO->MAPR   |=  AFIO_MAPR_SWJ_CFG_ENABLE;
dsdaiztt
3楼-- · 2019-07-15 16:02
谢谢各位指点,看来一下子 我还搞不好了,再慢慢看下。
ctwewer
4楼-- · 2019-07-15 18:15
 精彩回答 2  元偷偷看……
苏州名之卓
5楼-- · 2019-07-15 20:01
PA13,PA14,根本不需要编程的改变的,按缺省的就行了。现在这种情况就麻烦了,你需要用串口1和改变BOOT0引脚的电平,才能把程序重新刷进去,祝你好运。
zhouxk
6楼-- · 2019-07-15 20:19
本帖最后由 toofree 于 2018-7-17 23:46 编辑

第一次能烧,以后不能烧的话,八成是SWD或JTAG的管脚被REMAP成普通IO了。
有没有引出USART1、USART3,这两个口都可以做为ISP串口。可以用ISP把Flash擦除,然后重新烧一个正常的程序。

在ISP的时候需要将BOOT0拉高,在正常下载的时候不需要将BOOT0拉高,你拉高后,反而不一定能下载成功。

如果你的SWD接了复位信号RESET的话,应该也是可以下载的;如果JTAG方式的话,RESET更是接了的。
种种猜测,你用的是4线SWD,没有接RESET。

一周热门 更多>