AVR仿真调试方法---AVR Studio与Proteus联合仿真调试

来源:互联网 发布:php手册安卓 编辑:程序博客网 时间:2024/05/16 06:34
 一.WinAVR生成相应文件

   只需要安装WinAVR。会生成相应文件,下载到目标板中运行。也可以把生成的elf或cof文件引入到Proteus中进行软件与硬件的仿真,单可单步调试。
1.制作makefile文件
(1)运行mfile, 弹出窗口;
(2)填入目标文件名称,TARGET = test
(3)选择Atmega128 CPU
(4)选择调试文件格式为DEBUG = dwarf-2
(5)保存到与本文件同一目录中,保存文件名为makefile
2.运行make all
**有1个运行错误,找不到timer_enable_int(_BV(TOIE0))
查找AVR目录,在D:\WinAVR-20100110\avr\include\compat\deprecated.h 中有这个函数定义,在头中加入这个.h文件。
3. 在本目录中,make all     通过!

***可以生成makefile文件;可能生成cof,elf,hex,bin文件。
***hex或bin用AVRISP工具下载到目标板中就可以全速运行了。  
***目标板CPU中加入了bootloader会更好,AVRISP都不要了,只用PC机一个串口,就下载目标程序到目标板了。(见其它工程)
***也可以把生成的文件cof引用Proteus中进行软件与硬件的仿真,可单步执行。
***如果有硬件目标板;如果不需要单步调试,只用这个就可以了,以下内容都可以不看了。

二.AVR Studio中仿真

   需要安装两个程序:WinAVR和AVR Studio。
可以只用AVR Studio而不用WinAVR的mfile, 但要安装WinAVR, AVR Studio能找到WinAVR就可以,XP下已经自动完成。
1.软件模拟仿真:在AVR Studio中自己的目录中建立工程,工程名为test,
(1)选择GCC AVR,
(2)选择AVR Simulator(选择Debug/Select Platform and Device/选择AVR Simulator).
(3)选择ATmega128,
(4)设置时钟
(5)编译 Build all
仿真运行,OK!
***只能从PC机上运行,仿真.c文件的运行,通过看AVR端口和AVR寄存器了解运行状态。
***可以调试程序的代码错误和逻辑错误。很好!
***可单步调试
***非实时。

2.在线实时仿真(与JTAG ICE连接): 选择Jtage ICE与目标板连接,在线实时仿真程序。
** .c的目标文件hex下载到实际的目标硬件板中,硬件是真实的,程序也是真实地在目标板中运行,运行状态上传到PC机中显示。
***可单步调试
***实时
***不足:需要JTAG ICE开发硬件,和目标板。

三.Proteus 中仿真    

只需要安装WinAVR和Proteus两个程序, 或者WinAVR,AVR Studio和Proteus三个程序。     
1.方法1(两个程序):引入WinAVR 生成cof文件到CPU中,用于在proteus中仿真。
***源文件.c与Proteus工程文件一定要放于同一个目录中
***可单步调试软件硬件。

2.方法2(三个程序):引入AVR Studio生成的elf文件到Proteus中,elf在AVR Studio工程目录中。
***源文件.c与Proteus工程文件一定要放于同一个目录中
***问题:.c源文件有两处,src目录中和proteus工程中,会不一致,不好。
解决方法:可以把AVR Studio工程、Proteus工程、C源文件等放于同一目录中,但这会很乱。

四.AVR Studio与Proteus联合仿真调试

   需要安装WinAVR, AVR Studio, Proteus三个软件,在AVR Studio中启动Proteus。
三个独立目录结构:
.\src               ----放.c .h源文件
.\AVRStudioPRJ\     ----放AVR Studio工程文件(会生成elf,hex等文件)
.\ProteusPRJ\       ----放Proteus工程文件

1.在AVR Studio中仿真(选择Debug/Select Platform and Device/选择Proteus VSM Viewer)
2.Proteus中CPU的程序选择AVR Studio生成的elf文件,可以带目录。

***源文件只放于一处 .\src中就可以了!保证源程序的一致性,但是,*进入Proteus调试是不能看到C源码的(前边说的不同目录的问题),但在AVR Studio中可以看到
***可以软件和硬件同时仿真运行
***可单步调试
***非实时。

五.如何选择调试方法
可以混合使用!!!根据你项目的情况来选择。


其它:
PIM---Physical Interface Mode
(1)COMPIM---Real RS232 Com to real VTerm connncetion    --OK!
(2)Winpcap---real Nic to virul Nic connnection        --OK!
(2)Virual USB---virtual USB                  ---不稳定!要使用Winpcap

问题:1.
Proteus VSM SDK 方法

附:Keil for ARM也可以连接到Proteus中。  但Protous当前可支持的ARM有限。
原创粉丝点击