TKSB系列专业仿真器Trace功能的妙用.PDFVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TKSB系列专业仿真器Trace功能的妙用

广州周立功单片机发展有限公司 Tel: (020 Fax: TKS B系列专业仿真器“Trace ”功能的妙用 (2004/8/6 V 1.0) 本章节主要阐述了在Keil IDE (µVision2/µVision3 )集成开发环境下, TKS-B系列专业 仿真器中“Trace ”功能的特点和使用方法。 1. “Trace ”的定义解释 “trace ”在英文中是 “踪迹”的意思,在调试环境中,跟踪已经被执行过的指令的运行 轨迹就叫做 “trace ”。本文中所阐述的 “Trace ”是仿真器中使用的先进技术,主要用于查看 程序运行中各种状态的连续变化,其主要用途是跟踪程序指针的运行轨迹,便于用户分析程 序的流向。 由于“Trace ”需要连续记录程序的运行状态,因此需要一个高速缓冲区来进行实时数 据记录。高档仿真器一般具备大的缓冲区,价格也高。然而,无论 “Trace ”的高速缓冲区 有多大,在程序实时运行后将很快溢出。因此,仿真器中的 “Trace ”一般都采用 “向后记 录”的方式,溢出后最前面的数据 (旧数据)将被新数据覆盖。所以,程序运行中 “Trace ” 缓冲区域中总是记录程序必威体育精装版的状态数据。当程序运行被中断(断点/夭折/单步)后,用户 可以查看缓冲区域中的状态数据,用户可以根据这些数据来分析/排除故障。 2. TKS-B中“Trace ”的特点 TKS仿真器B系列内部有64K 的“Trace ”缓冲区,记录用户程序的运行流程,最大可以 记录64K条用户指令。当程序运行被中断仿真器进入监控状态时,“Trace ”缓冲区中记录了 前64K条指令的运行轨迹情况;如果当前实际运行的程序没有超过64K条,则按照实际记录 的有效条数计算。注意:64K的“Trace ”记录在复位后将全部清除。 3. 使用方法 “Trace ”功能是在硬件仿真环境中,通过使能跟踪记录和打开“Trace ”窗口实现的。 注意:用户只能在反汇编窗口观察跟踪记录,这是因为“Trace ”只能以汇编指令记录,所 以只能以汇编的形式显示,因而在uV2 中,跟踪窗口会在反汇编窗口显示出来。 下面举一个例子具体说明“Trace ”的使用方法和功能。 以下的例程“trace.c ”使用了定时器T0 中断,在主程序中会不断进入定时中断服务程序。 使用TKS-58B对其进行硬件仿真,并使用 “Trace ”功能,可以清楚地看出程序的运行流向。 /***************************************************************************** 函数:trace.c 功能:使用了定时器/计数器0 的模式0,在主程序中会不断地进入定时中断服务程序 说明:在硬件仿真中使用Trace功能,可以清楚地看出程序的运行流向 *****************************************************************************/ #includereg51.h - 1 - 广州周立功单片机发展有限公司 Tel: (020 Fax: #define uchar unsigned char uchar a1=0,a2=0,a3=0; void t0_int(void) interrupt 1 { TH0=0xff; //设置定时器初值为0xfffc TL0=0xfc; a3++; } void main(void) { TMOD=0x01; //设置T0 的M1=0 ,M0=1 ,C/T=0,GATE=0 TH0=0xff; //设置定时器初值为FFFCH TL0=0xfc; EA= 1; ET0=1;

文档评论(0)

ldj215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档