问题描述:当使用IAR调试Cortex M0+产品,在IAR/MDK调试环境下烧录以后可以正常运行,但是如果使用Segger的JFLASH直接烧录固件(.bin或者.hex格式二进制文件)后程序并没有开始运行,需要手动执行复位操作或者在JFlash中点击Target->Manual Programming->Start Application,或按快捷键F9,程序才开始运行。有什么办法可以设置编程烧录完成后程序自动执行呢?
问题解决:
在J-Flash中,可以看到在Project settings配置里面有Production栏目,在这个栏目下有"Start application"选项。或者执行自动快捷按键 "Auto" (F7) 也可以启动MCU正常运行。因此,可以在JFLASH界面配置自动运行选项。打开Option->Project Setting,切换到Production选项,勾选Start Application,就可以让程序自动运行。
"Via SFR access"表示CPU通过调试接口对特殊功能寄存器进行访问来实现。
(SWD调试口只需要外接GND, SWDCLK, SWDDAT,对目标板VCC供电即可,Reset引脚可以不用接)。
调试口复位:
调试系统可以通过如下的方式复位:
• 在DAP控制寄存器里面有系统复位,使用调试器让系统在复位状态
• NVIC应用中断和复位控制寄存器里面的SYSRESETREQ执行复位
• DAP控制寄存器允许系统内核保持处于复位态