ATtiny13 片上调试系统

2020-07-03来源: eefocus关键字:ATtiny13  片上调试系统  寄存器

特性

* 完全的程序流控制
* 仿真芯片上所有的模拟和数字功能,除了RESET引脚
* 实时操作
* 支持符号调试(C 与汇编级,或其它 HLL)
* 没有限制的程序断点数( 使用软件断点)
* 非插入式操作
* 与实际器件相同的电气特性
* 自动配置系统
* 高速操作
* 编程非易失性存储器

概述

debugWIRE片上调试系统使用单线双向接口来控制程序流,在CPU中执行AVR指令,对 不同的非易失性存储器进行编程。

物理接口

当ATtiny13的debugWIRE使能熔丝位DWEN被编程且锁定位未编程时,目标器件中的debugWIRE 系统被激活。RESET 端口引脚配置为上拉使能的线与 ( 开漏 ) 双向 I/O,成为目标与仿真 器间的联系通路。

ATtiny13 debugWIRE 设置

上图给出 debugWIRE 使能的目标 MCU 及仿真连接器的示意图。系统时钟不受 debugWIRE 的影响,只由 CKSEL 熔丝位决定。
设计使用 debugWIRE 的系统时,必须进行下面的检查:
* dW/(RESET) 的上拉电阻不得小于10k欧。 debugWIRE 并不需要上拉电阻
* 将 RESET 引脚与 VCC 直接连接将无法工作
* 使用 debugWIRE 时必须断开与 RESET 引脚连接的电容
* 必须断开所有的外部复位源

软件断点

debugWIRE通过AVR断点指令来设置程序存储器断点。在AVR Studio 设置一个断点将 在程序存储器中插入 BREAK 指令。被 BREAK 指令所替代的指令将被保存。程序继续运行时,保存的指令得到执行,然后继续执行其他指令。断点也可以通过在程序中插入 BREAK指令进行手工设置。


每次断点改变后Flash必须要重新编程。这由AVRStudio 通过debugWIRE 接口自动处 理。断点的使用会降低 Flash 数据记忆时间。调试用的器件不能发给最终客户。

debugWIRE的局限

debugWIRE通讯引脚(dW)与外部复位(RESET)共用同一引脚。因此使能debugWIRE之后,系统不支持外部复位源。


当程序在 CPU 中全速运行时, debugWIRE 系统精确的仿真所有的 I/O 口功能;当CPU停止工作时,通过调试器访问某些 I/O 寄存器时要注意。详见 debugWIRE 文档。
DWEN 熔丝位的编程使部分时钟系统在所有的休眠模式下都保持运行。这会增加器件休眠模式的功耗。因此不使用 debugWire 时应该禁用 DWEN 熔丝位。

I/O存储器中与debugWIRE相关的寄存器


下面说明在 debugWire 中用到的寄存器。

ATtiny13 DWDR

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

关键字:ATtiny13  片上调试系统  寄存器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic502047.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ATtiny2313 引脚功能
下一篇:ATtiny13 中断向量

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ATtiny13 引脚功能
引脚名称引脚功能说明VCC数字电路的电源GND地端口B(PB5..PB0)端口 B 为 6 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 B处于高阻状态。端口 B 也可以用做其他不同的特殊功能,请参见ATtiny13 DPF中的 P48。RESET复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P30Table 12。持续时间小于门限时间的脉冲不能保证可靠复位。
发表于 2020-07-17
ATtiny13 内核介绍
本节从总体上讨论ATtiny13 AVR 内核的结构。CPU 的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。(点击图片放大)结构综述Figure 3. AVR 结构的方框图为了获得最高的性能以及并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令( 在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的FLASH。 快速访问寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU 操作中,两个
发表于 2020-07-17
<font color='red'>ATtiny13</font> 内核介绍
ATtiny13 状态寄存器
。·Bit 0 – C: 进位标志表明算术或逻辑操作发生了进位。详见ATtiny13指令集的说明。
发表于 2020-07-17
<font color='red'>ATtiny13</font> 状态寄存器
ATtiny13 通用寄存器
。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。Figure 5. X、Y、Z 寄存器在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。具体细节请参见ATtiny13指令集。备注:以上所有图片中的地址中“$”更改为“0X”.
发表于 2020-07-17
<font color='red'>ATtiny13</font> 通用寄存器
ATtiny13 堆栈指针
堆栈指针主要用来保存临时数据、局部变量和中断 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意 AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。堆栈指针指向数据 SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈 0x60 的地址 PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用 POP 指令将数据弹出堆栈时,堆栈指针加一;而用 RET 或 RETI 指令从子程序或中断 返回时堆栈指针加二。ATtiny13的堆栈指针由I/O 8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些 AVR 器件的数据区太小,用 SPL
发表于 2020-07-17
<font color='red'>ATtiny13</font> 堆栈指针
ATtiny13 指令执行时序
这一节介绍指令执行过程中的访问时序。AVR CPU 由系统时钟clkCPU 驱动。此时钟直接来自选定的时钟源。芯片内部不对此时钟进行分频。Figure 6 说明了由Harvard 结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。这是一个基本的流水线概念,性能高达1 MIPS/MHz,具有优良的性价比、功能/ 时钟比、功能/ 功耗比。Figure 7 演示的是寄存器文件内部访问时序。在一个时钟周期里,ALU 可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去。
发表于 2020-07-09
<font color='red'>ATtiny13</font> 指令执行时序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved