JTAG STM32 Jlink 仿真 调试问题

以STM32为例,我们知道,在keilMDK里硬件仿真时,JTAG起作用了,STM32跟着单步运行一步一步执行,有几个问题:1、在JTAG调试时,STM32是否是处于一种... 以STM32为例,我们知道,在keil MDK里硬件仿真时,JTAG起作用了,STM32 跟着单步运行一步一步执行,有几个问题:
1、在JTAG调试时,STM32是否是处于一种特殊的模式?与正常模式有什么区别?为什么CPU没有全速执行?在仿真时如果断开JTAG与STM32的连接,STM32会怎么样?
2、STM32烧写了程序后正常运行时,JTAG是否还起作用?
3、能否用某种API 通过JTAG 来读取、写入运行中的STM32中的寄存器?有没有这个API?
展开
 我来答
jfluo0101
推荐于2016-04-22 · TA获得超过1415个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:275万
展开全部
  1. 使用JTAG的时候,STM32进入的是调试模式,调试模式下,CPU无法全速运行,因为指令和代码的执行是受外部控制的,例如你可以step或者step out等等,而全速模式则是STM32自动执行代码的执行流程,这个流程你是无法干预的。。。当你断开JTAG和STM32的连接,当然就无法使用调试模式了,此时STM32就会进入全速模式,不过如果你是在仿真阶段断开的话,此时CPU仍然处理调试模式,但是无法收到调试指令(本质上是中断),一般的话,当你断开时,STM32会收到复位信号,此时就会脱离调试模式。。

  2. 当STM32烧写了程序并正常运行后,JTAG是无法启动作用的,因此这个时候,STM32已经进入正常模式,JTAG无法接管CPU,除非你重新编译,下载代码;

  3. 至于这个API,我不太清楚,不过JTAG是业内标准,你可以通过JTAG提供的功能,实现对STM32内部寄存器和内存的读取等操作,这个一般的IDE都会提供的。。


不过,JTAG是老标准,STM32除了支持JTAG外,还有ARM公司提供的SWD调试技术,具体你可以看看这方面的技术文章。。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式