把单片机与驱动程序这样接触底层汇编与硬件相关的程序.docxVIP

把单片机与驱动程序这样接触底层汇编与硬件相关的程序.docx

  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文档。上传文档
查看更多
把单片机与驱动程序这样接触底层汇编与硬件相关的程序 单片机的程序设计调试分为两种, 一种是使用软件模拟调试, 意思确实是用开发单片机程序 的计算机去模拟单片机的指令执行, 并虚拟单片机片内资源, 从而实现调试的目的, 然而软件调 试存在一些问题, 如计算机本身是多任务系统, 划分执行时间片是由操作系统本身完成的, 无法 得到操纵, 如此就无法时时的模拟单片机的执行时序, 也确实是说, 不可能像真正的单片机运行 环境那样执行的指令在同样一个时间能完成 〔往往要完成的比单片机慢〕 。为了解决软件调试的 问题,第二种是硬件调试,硬件调试事实上也需要计算机软件的配合, 大致过程是如此的: 计算 机软件把编译好的程序通过串行口、 并行口或者 USB口传输到硬件调试设备中 〔那个设备叫仿真 器〕,仿真器仿真全部的单片机资源〔所有的单片机接口,同时有真实的引脚输出〕,仿真器能 够接入实际的电路中, 然后与单片机一样执行。 同时,仿真器也会返回单片机内部内存与时序等 情况给计算机的辅助软件, 如此就能够在软件里看到真实的执行情况。 不仅如此, 还能够通过计 算机断的软件实现单步、全速、运行到光标的常规调试手段。 图 1:仿真器 总结一下两者的不同与相同: 相同点: 1:都能够检测单片机执行时序下的片内资源情况〔如 R0-R7、 PC 计数器等〕 2:能够实现断点、全速、单步、运行到光标等常规调试手段。 不同: 1:软件调试无法实现直截了当连接硬件电路的调试,只能通过软件窗口虚拟硬件端口 的电平输出情况而仿真器能够实现与单片机一样的功能的硬件连接,从某种意义上说那个时候仿真器确实是一个单片机。 2:软件调试执行单片机指令的时间无法与真实的单片机执行时间画上等号,也确实是 说假如一个程序在单片机中要执行 300us ,可能在计算机中执行的时间可能会比那个长 许多,而且无法预料。仿真器那么是完全与单片机相同。 3:软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成,假如是一个协调系统,可能还需要借助几个单片机仿真器和相关的仪器才能解决。 4:软件仿真不需要额外花钱,而硬件需要,一个仿真器一般都上千元,同时能够仿真许多种单片机的工作。 最后,调试一般基本上在发生错误与意外的情况下使用的,假如程序能正常执行调试许多 时候是用不上的, 因此最高效率的程序开发依旧程序员自己做好规范, 而不是盼望调试来解决问题。 下面将具体介绍如何使用 KeiluVision 来软件调试单片机程序。 首先:打开一个差不多编译通过的单片机项目〔如何新建与编译单片机程序项目那个地方 省略〕 选择 Debug 下面的 Start/StopDebugSession ,那个选项能够打开调试也能够关闭调试接下来看到的窗口确实是调试窗口了: 下面具体说说相关子窗口的功能: 1:左侧的 ProjectWorkspace Regs 是片内内存的相关情况值, Sys 是系统一些累加器、 计数器等。 Regs 很简单就不多说。具体介绍一下 Sys a 累加器 ACC,往往在运算前暂存一个操作数〔如被加数〕,而运算后又保存其结果〔如代数和〕。 b 寄存器 B,要紧用于乘法和除法操作 sp sp_max dptr 数据指针 DPTR PC$ states 执行指令的数量 sec 执行指令的时间累计〔单位秒〕 psw 程序状态标志寄存器 PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。 p 奇偶标志 P。反映累加器 ACC内容的奇偶性,假如 ACC中的运算结果有偶数个 1〔如,其中有 4 个 1〕,那么 P 为 0,否那么, P=1。 f1 ov 溢出标志位 OV。 MCS- 51 反映带符号数的运算结果是否有溢出,有溢出时,此位为 1, 否那么为 0。 rs f0 ac 辅助进位标志 AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即 低四位相加〔或减〕有否进位〔或借位〕,如有那么  AC为  1 状态,否那么为  0。 cy 进位标志 CY〔 PSW 7〕。它表示了运确实是否有进位〔或借位〕。假如操作结果在 最高位有进位〔加法〕或者借位〔减法〕,那么该位为 1,否那么为 0 由于 PSW存放程序执行中的状态,  故又叫程序状态字  ?运算器中还有一个按位  〔 bit  〕进行逻辑运 算的逻辑处理机〔又称布尔处理机〕 依照指令执行的不同上述值会有相应的变化,调试的目的。  也正是为了监测这些在单片机中看不到的值而达到 尽管软件调试无法实现硬件调试那样的信号输出,然而能够通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。 上图所示, Port0 , Port

文档评论(0)

158****3804 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档