历史上的今天
返回首页

历史上的今天

今天是:2025年01月06日(星期一)

正在发生

2020年01月06日 | avr proteus仿真第一课:安装设置avr studio和winavr

2020-01-06 来源:eefocus

avr的开发环境需要安装两个软件:

WinAVR+AVR Studio 新手入门必读

1. 获得必须的软件 
请从Atmel官方获得最新版本的AVR Studio
下载地址参见:http://www.cnblogs.com/proteus/archive/2011/11/09/2242583.html
请从WinAVR官方获得最新版本的WinAVR

下载地址: http://sourceforge.net/projects/winavr/files/WinAVR/
注意:WinAVR和AVR Studio是2个不同的软件,前者是开源项目,不属于Atmel所有,后者是Atmel版权所有的。 

2. 安装步骤 
1)安装WinAVR 
2)安装AVR Studio 
3)安装AVR Studio的Service Pack(如果有的话) 

3. 新建测试工程 
1)启动AVR Studio 
2)选择"New Project" 
3)"Project type"里选择"AVR GCC",单击"Location"旁的按钮,选择工程保存位置(这里假设为C:),避免路径中有中文,(注意,确保工程保存位置没有中文路径,所以,不能保存在“我的文档”或者“桌面”之类含中文路径的) 

在"Project name:"里填入工程名test01,把"Create initial file"的钩去除,把"Create folder"钩上, 单击"Next>>" 
4)"Debug platform:"里选择"AVR Simulator","Device:"里选择"Atmega128",单击"Finish" 
5)菜单File->New File,建立空白文档,复制以下代码到该文档中(注意:最后一个“}”下面还有一个空行): 

#include "avr/io.h" 

int main(void) 

         while(1); 


6)菜单File->Save,在“另存为”对话框里选择工程保存的路径下工程名命名的文件夹下(这里假设为C:test01), 
     你会看到已经有一个test01.aps文件存在了,那是AVR Studio的工程文件。“文件名”里填入“main.c”,保存。 
7)在"AVR GCC"工程管理窗格内的"Source Files"上单击右键,右键菜单里选择"Add Existing Source File(s)...", 
     在"Add Source File"里选择刚刚建立的main.c文件。会看到工程管理窗格内的"Source Files"下多了个main.c文件。 
8)菜单Project->Configuration Oprions,在"General"下(默认就是),确认"Use External MakeFile"没有钩上, 
     "Frequency:"填入频率“8000000”,"Optimiztion"选择"-00",确认"Create Hex File"已经钩上, 
     然后单击确定(请勿修改其它设置) 
9)菜单Build->ReBuild All,编译工程。如果操作正确,应该没有警告和错误。 
10)菜单Debug->Start Debugging,顺利的话,软件仿真已经启动。 
11)至此,测试工程已成功。可以在工程保存目录下看到一个default文件夹,打开后有test01.elf(AVR Studio的支持的仿真调试文件格式之一),test01.hex(烧写时要用的文件) 


成功的显示:

 

Build started 9.11.2011 at 16:14:41
avr-gcc -mmcu=atmega128 -Wl,-Map=liaojie.map main.o     -o liaojie.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  liaojie.elf liaojie.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex liaojie.elf liaojie.eep || exit 0
avr-objdump -h -S liaojie.elf > liaojie.lss

AVR Memory Usage
----------------
Device: atmega128

Program:     204 bytes (0.2% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...

 


4. 给新手的建议: 

如果书中/资料中以命令行方式编译文件,请跳过这些例子中的命令行操作,改为用AVR Studio新建工程来编译。 


如果有Makefile方面的讲解,也请跳过。因为这些讲解可能太过于简略,而难以理解。 
1)不要去用WinAVR带的mfile所产生的Makefile文件,只使用AVR Studio菜单Project->Configuration Oprions来配置工程,(不要钩上"Use External MakeFile") 
2)工程保存路径中不要有中文名,即只在英文名文件夹下(包括其上各级文件夹也是英文) 
3)始终使用Build->ReBuild All,编译工程 
4)新建工程时,工程名不要用Makefile(不论何种大小写组合) 
5)新建工程时,不要钩上"Create initial file" 
6)不要修改"Output File"里的文件名 
7)现在,中断程序是以ISR(...)方式声明的,书和资料可能落后于WinAVR的更改,请随时通过开始菜单里WinAVR下的avr-libc Manual [WinAVR]查看目前WinAVR的各种函数和头文件说明 

5. 进一步学习: 
当你比较熟悉用AVR Studio完成你的工程编译过程后,可以考虑学习Makefile:

推荐阅读

史海拾趣

Deltrol Controls公司的发展小趣事

随着物联网技术的不断发展,电子设备对继电器的要求也越来越高。Deltrol Controls紧跟行业趋势,对继电器产品进行了智能化改造。通过集成传感器、控制器等智能元件,新型继电器能够实现对电路状态的实时监测和远程控制。这一创新产品不仅提高了电子设备的智能化水平,也为客户带来了更多的便利和价值。

Hasco Relays and Electronics International Corp公司的发展小趣事

Harris公司最初成立于1890年代,起初以无线电通信技术为核心业务。在早期,公司凭借其创新的无线电通信技术,在通信领域迅速崭露头角。这一时期,Harris不仅为军事领域提供了关键的通信解决方案,还逐步拓展到商业和民用市场,为当时的电话、电报等通信方式带来了革命性的变化。通过不断的技术研发和产品创新,Harris逐渐奠定了其在电子行业的重要地位。

益升华(Essentra)公司的发展小趣事

为了提高生产效率和降低成本,益升华(Essentra)公司不断优化供应链。公司与多家优质供应商建立了长期稳定的合作关系,确保原材料的质量和供应的稳定性。同时,公司还引入先进的生产设备和工艺,提高生产自动化水平,降低人工成本。此外,益升华(Essentra)公司还建立了完善的物流体系,确保产品能够及时送达客户手中。这些措施的实施,使公司的竞争力得到了显著提升。

德欣(COV)公司的发展小趣事

为了进一步提升市场竞争力,德欣公司开始在全球范围内进行布局。公司先后在亚洲、欧洲、美洲等地设立了生产基地和研发中心,加强了与国际市场的联系。同时,德欣公司还积极寻求与国际知名企业的合作,共同开发新产品、新技术和新市场。这些举措不仅提升了德欣公司的品牌影响力和市场竞争力,也为其未来的发展提供了更广阔的空间。

HM International公司的发展小趣事

为了进一步提升市场竞争力,德欣公司开始在全球范围内进行布局。公司先后在亚洲、欧洲、美洲等地设立了生产基地和研发中心,加强了与国际市场的联系。同时,德欣公司还积极寻求与国际知名企业的合作,共同开发新产品、新技术和新市场。这些举措不仅提升了德欣公司的品牌影响力和市场竞争力,也为其未来的发展提供了更广阔的空间。

AZM [Arizona Microtek, Inc]公司的发展小趣事

为了进一步提升公司的国际竞争力,AZM公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术合作、市场合作等方式,共同开拓全球市场。同时,AZM公司还在海外设立了研发中心和生产基地,以便更好地了解当地市场需求和技术发展趋势,实现全球布局和资源整合。

请注意,这些故事是基于假设和推测构建的,并非AZM公司的真实发展历程。如果需要了解AZM公司的具体发展历程和故事,建议查阅该公司的官方网站、新闻报道或相关文献资料。

问答坊 | AI 解惑

电子技术入门学习内容综述

电子技术入门学习内容综述 学好电子技术,打好扎实的基础需要掌握哪些知识?初学者在学习之初能有所了解,学习就会心中有数,有的放矢。 一、元器件 1.识别 (1)认识元器件(实物的外形特征) (2)识别元器件引脚(极性,引脚排列顺序) ...…

查看全部问答>

LED和LCD屏区别之谈

LED是发光二极管Light Emitting Diode的英文缩写。 LED应用可分为两大类:一是LED单管应用,包括背光源LED,红外线LED等;另外就是LED显示屏,目前,中国在LED基础材料制造方面与国际还存在着一定的差距,但就LED显示屏而言,中国的设计和生产技术 ...…

查看全部问答>

非隔离式LED日光灯驱动常见问题 欢迎探讨;(SMD802)

之前调过一款SMD802; 常见问题如下 1, 散热问题 2,日光灯安装时机壳漏电问题(市场上都存在这个问题) 3,工作人员在换灯管时,未断开关情况下,直接更换灯管时导致LED烧坏。。。 各位在调试SMD802过程中,遇到何种问题欢迎探讨; 另外有谁 ...…

查看全部问答>

各位牛人有没有知道探测两个无线节点之间距离的专用芯片!

我要做几个无线的传感器节点,新手初入门,不知道有没有专用芯片可以探测两个节点之间的距离的,如果有的话,请告诉我这个芯片的名字,感激不尽,在google,百度搜一堆都没结果!…

查看全部问答>

vxworks源代码问题

#define ROUND_UP(x, align)        (((int) (x) + (align - 1)) & ~(align - 1)) #define ROUND_DOWN(x, align)        ((int)(x) & ~(align - 1)) #define ALIGNED(x, align)      &nb ...…

查看全部问答>

ARM7(单片机)LPC2XXX一个芯片同时烧录两段独立的工程主函数代码

在用LPC2378(LPC2XXX系列相同)做实验,想用KEIL FOR ARM做两个工程,也就是说有两个启动代码,有两个C语言main主函数,想在编译后分别烧录到同一芯片的不同地址处。 启动时先启动第一段代码,从第一段代码再跳到另一段代码处。 请高手们指点一 ...…

查看全部问答>

哪位有WINCE远程调试的工具

哪位有WINCE远程调试的工具: 远程调用评测程序(Remote Call Profiler) 远程内核跟踪程序(Remote Kernel Tracker) 远程系统信息(Remote System Information) 远程性能监视程序(Remote Performance Monitor) 麻烦您发到我的邮箱 xia ...…

查看全部问答>

!!!招聘:硬件、嵌入式高薪重点职位!!

一、管理职位 技术部主任 1.硕士以上学历,计算机、集成电路设计或嵌入式系统相关专业; 2.5年以上技术管理和项目管理经验; 3.有相关产品的设计经验; 4.能够全面制定公司的产品计划; 5.能够带领团队成功实施产品项目; 6.具有较强的组织 ...…

查看全部问答>

STM32系统供电电源的选型问题

STM32芯片的供电电压一般为3.3V。现在系统外部提供24V直流电源。 我需要将24V的电源转换为3.3V,不知道选什么样的电源比较好? 初步考虑使用TI的隔离式 DC DC 转换器,将24V直接变为3.3V不知道是否可行? 希望大家能给个意见。…

查看全部问答>

请教屏幕问题

4.3寸的触摸屏,原来可以用,今天突然就没有显示了,uboot启动时是白色的,linux启动之后就没有显示,诡异的是触摸功能还可以用,运行屏幕校准居然可以,这个大概是什么原因呢?…

查看全部问答>