在Proteus中实现C51源码级的调试

Proteus是英国L,abcenter公司开发的EDA软件,它集单片机仿真和SPICE分析于一身,功能极其强大。目前在国内开始被广泛使用,在网络上有很多论坛在讨论该软件的使用。(编者注:有关该软件的基本使用方法见《无线电》2005年第5、6期。)用该软件进行单片机系统的仿真时,若要实现源码级的调试,目前广泛采用的有两种方式:一是调用汇编语言程序,但是目前相对来说,编制大量汇编代码的人越来越少,以51系列单片机为例,更多的是采用C51,所以这种方式不是最佳方式。二是利用Keil C51软件与Proteus搭建的联调系统,这种方式在调试时需要Keil和Proteus一起运行,并频繁在不同窗口之间切换,使用起来不太方便。本文将介绍两种直接在Proteus软件中实现C51源码级调试的方式。

 

  8051单片机仿真支持的文件格式用Proteus进行具体仿真之前都需要设定相应的程序文件。当我们点击程序文件输入框右侧的文件夹图标,则可以打开文件选择对话框来选择Proteus支持的文件。

  其所支持的文件类型有Intel  Hex  Files、OMF51 Files、UBROF Files三种。

  对于前面提到的两种方式需要配置的是Intel Hex Fries格式的文件,即我们通常使用的HEX十六进制文件。是低版本所支持的格式。该文件没有包含足够的信息,不允许我们进行单步调试,不能实现观察源码、观看变量等功能。

  后面两种格式是在6.9版本中增加的。其中OMF51(absolute objectmodule format files,绝对目标文件)是Keil所支持的文件格式,UBROF(Universal Binary ReLOCatable Ob—ject Format,通用的二进制重定位目标格式)是IAR编译器所支持的文件格式。它们都包括所有的指令和调试信息,允许我们实现全速、单步、设置断点、观察变量等调试功能,它是由编译器输出的目标文件。下面分别介绍OMF51格式和UBROF格式文件的生成和使用。

  在kell中如何生成OMF51聊格式的文件具体过程如下:

  1.在Keil中打开相应的工程项目。

  2.将Target 1选中点鼠标右键,选择Options for Trget“Target 1"。

  3.在新打开的对话框中选择OUTPUT栏,并完成设置。

  需要说明.通常Name of Executable是工程名,没有扩展名,需要我们添加“omf”。再有必须要包含调试的信息(Debug Information),将输出十六进制Hex格式文件的选项(Create HEX File)去掉,然后点击确定退出。对整个工程进行编译就可以得到我们想要的OMF。格式文件了。

  如何使用OMF51格式文件在Proteus软件中打开单片机仿真文件,将程序文件设置成OMF文件,然后就可以在Proteus环境中调试系统。

  当需要调出c源代码窗口时,先按下面的暂停按钮,然后点Debug菜单,将8051 CPU SourceCode-U1选中,也可以打开其它观察窗口。这个时候的调试方式和VC++等系统相似,提供了全速、跳过函数、进入函数、跳出函数、执行到光标处、设置断点、单步等方式。

  在岫中如何生成删格式的文件首先要正确安装IAR软件,IAR软件针对不同的微控制器有不同的版本,所以在安装时选择8051的版本,在下载之前需要注册,之后会将注册码和下载地址发送到你的信箱,然后下载安装,使用期是一个月,目前的版本为7.2,下面的所有操作都是基于该版本的IAR。关于如何安装IAR软件这里不再详述。

  UBROF格式文件生成的具体过程如下;1.在IAR中打开相应的工程项目。

  2.如图7所示,将WorksPACe选择为Debug方式,这是必须的,否则观察不了源代码。

  3.本例中的工程名为EX-1,将EX-1-De-bug选中并点鼠标右键,选择Options。

  4.在打开的Options对话框中选择Linker,此时要产生UBROF格式的文件有两种方式:第一种方式,选择Output栏,完成设置,其他项均为默认值,第二种方式,选择Extra Output栏,此时若Output栏中的Format设置为Debug infor—mation for C-SPY,则必须选中A11owC-SPY-spe-cific  extraoutput file。

  5.在设置如何使用UBROF格式的文件在Proteus软件中打开单片机仿真文件,将程序文件设置成UBROF格式的文件,然后就可以在Proteus环境中调试系统。

  当需要调出C源代码窗口时,先按下面的暂停按钮,然后点Debug菜单,将8051  CPUSource Code—U1选中,也可以打开其它观察窗口。这个时候的调试方式和VC++等系统相似,提供了全速、跳过函数、进入函数、跳出函数、执行到光标处、设置断点、单步等方式。

  采用UBROF恪式的文件比采用OMF格式的文件更有优势,因为采用UBROF格式的文件可以直接通过变量的名称观察程序里的变量,观察窗口可通过Debug菜单下选中7.8051 CPU Vari—ables-U1调出,在变量窗口中可以观察到变量temp的当前值,而采用OMF格式的文件则不具有这项功能。

  总结利用OMF和UBROF文件进行调试的方式,将为开发节约大量的时间。

  由于整个仿真过程和我们使用硬件系统的操作完全一致,这样的调试方式特别适合于职业培训和职业技能的考核。目前使用Proteus软件仿真8051单片机系统时采用这种方式的还不多见,所以将自己的一些使用经验写出来供大家参考。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值