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

  一.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有限。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片机C语言设计实训100例是一门基于AVR Proteus仿真的实训课程,旨在培养学生对单片机C语言编程的能力。 首先,这门实训课程通过100个设计实例,逐步引导学生掌握单片机C语言编程的基本原理和技巧。学生将学习到如何使用C语言编写单片机的各种功能,如数字输入输出、模拟输入输出、定时器、中断等。同时,学生还将学习如何使用Proteus软件进行仿真,以验证程序的正确性。 其次,该课程采用AVR Proteus仿真环境,让学生在不使用实际硬件的情况下完成实验。这样做的好处是可以节省成本,并且大大降低了学生的实验难度。学生只需在Proteus中编写程序,并将其加载到相应的AVR单片机模型中进行仿真即可。 此外,该课程的设计实例十分丰富和全面,涵盖了单片机C语言编程的各个方面。学生可以通过实验了解和掌握各种功能和技术,逐步提高编程水平。同时,实验例子中还会涉及一些实际应用场景,例如温度控制、蓝牙通信等,使学生学到的知识与实际问题相结合。 最后,学生在完成实验后还需进行相应的仿真调试和实验报告撰写。通过调试,学生可以发现和解决程序中可能存在的问题,进一步提高编程能力。实验报告的撰写则培养了学生的实验写作能力,使他们能够准确记录自己的实验过程和结果。 总而言之,单片机C语言设计实训100例-基于AVR Proteus仿真是一门重要且实用的课程,通过该课程的学习,学生可以全面提高自己的单片机C语言编程能力,为将来从事相关领域提供坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值