发 帖  
原厂入驻New

请问debugWIRE片上调试系统如何控制程序流程?

14 debugWIRE 片上调试系统 控制程序
分享
debugWIRE片上调试系统如何控制程序流程
0
2020-11-16 06:57:03   评论 分享淘帖 邀请回答
5个回答
  特性
  完全的程序流控制
  仿真芯片上所有的模拟和数字功能,除了RESET引脚
  实时操作
  支持符号调试(C 与汇编级,或其它 HLL)
  没有限制的程序断点数( 使用软件断点)
  非插入式操作
  与实际器件相同的电气特性
  自动配置系统
  高速操作
  编程非易失性存储器
2020-11-16 10:27:54 评论

举报

  概述
  debugWIRE片上调试系统使用单线双向接口来控制程序流,在CPU中执行AVR指令,对 不同的非易失性存储器进行编程。
2020-11-16 10:28:12 评论

举报

  物理接口
  当ATmega168的debugWIRE使能熔丝位DWEN被编程且锁定位未编程时,目标器件中的debugWIRE 系统被激活。RESET 端口引脚配置为上拉使能的线与 ( 开漏 ) 双向 I/O,成为目标与仿真 器间的联系通路。
  
  Figure114 给出 debugWIRE 使能的目标 MCU 及仿真连接器的示意图。系统时钟不受 debugWIRE 的影响,只由 CKSEL 熔丝位决定。
  设计使用 debugWIRE 的系统时,必须进行下面的检查:
  * dW/(RESET) 的上拉电阻不得小于 10k 。 debugWIRE 并不需要上拉电阻
  * 将 RESET 引脚与 VCC 直接连接将无法工作
  * 使用 debugWIRE 时必须断开与 RESET 引脚连接的电容
  * 必须断开所有的外部复位源
2020-11-16 10:28:40 评论

举报

  软件断点
  debugWIRE通过AVR断点指令来设置程序存储器断点。在AVR Studio 设置一个断点将 在程序存储器中插入 BREAK 指令。被 BREAK 指令所替代的指令将被保存。程序继续运行时,保存的指令得到执行,然后继续执行其他指令。断点也可以通过在程序中插入 BREAK指令进行手工设置。
  每次断点改变后Flash必须要重新编程。这由AVRStudio 通过debugWIRE 接口自动处 理。断点的使用会降低 Flash 数据记忆时间。调试用的器件不能发给最终客户。
2020-11-16 10:28:50 评论

举报

debugWIRE的局限
debugWIRE通讯引脚(dW)与外部复位(RESET)共用同一引脚。因此使能debugWIRE之后,系统不支持外部复位源。
当程序在 CPU 中全速运行时, debugWIRE 系统精确的仿真所有的 I/O 口功能;当CPU停止工作时,通过调试器访问某些 I/O 寄存器时要注意。详见 debugWIRE 文档。
DWEN 熔丝位的编程使部分时钟系统在所有的休眠模式下都保持运行。这会增加器件休眠模式的功耗。因此不使用 debugWire 时应该禁用 DWEN 熔丝位。
校准的ATmega168片内 RC 振荡器提供了固定的 8.0 MHz 的时钟 这是在 3V、25 C 下的标称数值。 器件出厂时CKDIV8熔丝位已经被编程,请参见 P31”系统时钟预分频器” 。按照Table11 对熔丝位 CKSEL 进行编程即可将其作为系统时钟。
I/O存储器中与debugWIRE相关的寄存器
下面说明在 debugWire 中用到的寄存器。

DWDR寄存器为在MCU中运行的程序与调试器提供了通信通路。该寄存器只能由debug-WIRE 访问且不能在通常操作中作为通用寄存器使用。
2020-11-16 10:29:19 评论

举报

只有小组成员才能发言,加入小组>>

326个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表