2. AVR 开发环境与工具入门 - 图文

更新时间:2023-11-16 08:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第X章 AVR开发环境与工具入门

X.1 AVR单片机的开发环境

这一章我们来介绍一下AVR单片机的开发环境。 对于一款单片机,即可以用汇编语言对其进行编程,也可以利用其它的高级语言比如C语言对其编程。51系列单片机的C编译器较通用的如德国的Keil集成开发环境(IDE),及在国内相对普及的伟福软件(WAVE)。AVR的开发环境相对较多。

许多第三方的厂商为AVR系列单片机开发了对应的AVR单片机C编译器,每个C编译器各有特点。其中比较主要的有:CVAVR(CodeVisionAVR)、EWAVR(IAR Embedded Workbench)、ICCAVR、WinAVR(GCCAVR)。EWAVR由IAR公司推出,ICCAVR由ImageCraft公司推出。

ATMEL公司也推出其自己的集成开发环境(IDE)及内含的汇编语言编译器,也就是AVR Studio集成开发环境。AVR Studio环境内不包含C语言编译器,但支持第三方软件WinAVR做为C编译器。

个人学习时,笔者推荐使用WinAVR做为C编译器,AVR Studio做为程序下载、仿真软件。两者配合使用构成完整的AVR开发环境。

X.2 CVAVR、EWAVR、ICCAVR软件简介

下面逐一简要介绍CodeVisionAVR、EWAVR、ICCAVR。

X.2.1 CodeVisionAVR

CodeVisionAVR 是一个交互的C 编译器,有完整的IDE和自动生成初始化程序的功能,并且支持AVR系列的微控制器。

CVAVR编译器几乎完全贯彻了ANSI C语言的标准,为了更好地支持AVR 微控制器和对嵌入式系统的需要,CVAVR进行了专门的优化处理。CVAVR编译生成的“COFF”(一种通用的对象文件格式,Common Object File Format)目标文件支持C源代码级的调试,例如变量观察;同时“COFF”也能在AVR的官方调试仿真工具“Atmel AVR Studio debugger ”中进行仿真调试。CVAVR的IDE内建了AVR在线编程功能,能自动传输二进制代码文件到AVR芯片上。并且对大多数常用的的串并在线ISP编程提供了界面友好的支持。(我也用它来烧写芯片)CVAVR还提供了一个在调试时很有用的串口终端,能接收来自微控制器传过来的实时调试信息(这是很有用的一个功能,一般调试单片机程序有接LED显示调试参数,软件仿真,硬件仿真,和通过串口实时传输调试信息到PC上)。

除了标准的C语言函数库外,CVAVR 还提供了一些专用的库,例如: * Alphanumeric LED modules * Philips I2C bus

* National Semiconductor LM75 Temperature Sensor

* Philips PCF8563, PCF8583, Maxim/Dallas Semiconductor DS 1302 and DS1307 Real Time Clocks

* Maxim/Dallas Semiconductor 1 Wire protocol

* Maxim/Dallas Semiconductor DS1820, DS18S20 and DS18B20 Temperature Sensors * Maxim/Dallas Semiconductor DS1621 Thermometer/Thermostat * Maxim/Dallas Semiconductor DS2430 and DS2433 EEPROMs * SPI * Delays

* Gray code conversion

CVAVR IDE 有强大的自动生成初始化AVR单片机内部集成的硬件功能的代码功能。支持如下:

* External memory access setup * Chip reset source identification * Input/Output Port initialization * External Interrupts initialization * Timers/Counters initialization * Watchdog Timer initialization

* UART(USART) initialization and interrupt driven buffered serial communication * Analog Comparator initialization * ADC initialization

* SPI Interface initialization

* Two Wire Interface initialization * CAN Interface initialization

* I2C Bus, LM75 Temperature Sensor, DS1621 Thermometer/Thermostat and PCF8563, PCF8583,DS1302, DS1307 Real Time Clocks initialization

* 1 Wire Bus and DS1820/ Ds18S20 Temperature Sensors initialization * LCD module initialization.

为使读者对CVAVR 有一个感性认识,介绍一下它的界面。

CVAVR 评估版的程序安装界面如下:

图X CVAVR程序安装

程序安装十分的简单,可以采用默认设置,一直点击下一步即可。安装完成后,双击CVAVR的菜单图标打开CVAVR IDE,程序初始化界面如下:

图X 打开CVAVR IDE

打开CVAVR IDE后会看到CVAVR IDE的程序编辑界面,由于刚刚安装,界面内还没有任何代码:

图X 打开CVAVR IDE

打开程序自带的例子,点击图标 下面。

。这些范例通常位于安装文件夹下的\

图X CVAVR IDE的程序编辑界面

对这个例子执行编译命令,点击对应图标按钮 译结果的相关信息:

,会弹出如下对话框,给出编

图X CVAVR IDE的程序编辑界面

当我们编辑好程序并且正确编译后,可以点击图标

进行调试,程序第一次安装并

没有指定调试器,顺着CVAVR的向导可以指定调试器比如 AVRStudio 4。

点击左侧的\会看到CVAVR给出很多代码模板:

图X CVAVR 的代码模板

X.2.2 EWAVR

首先介绍一下IAR 公司。

IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。

EWAVR与本书介绍的其它编译器有一个很大的不同在于其拥有自己的调试器 :IAR C-SPY 调试器。当然EWAVR软件也可以生成AVRStudio可以识别的文件格式,用于在

AVRStudio软件中调试。

嵌入式IAR Embedded Workbench?是一个集成开发环境。 IAR Embedded Workbench 主要包括: * IAR C-SPY 调试器

* IAR C-SPY 调试器系统 * IAR C/C++编译器 * IAR汇编器

* IAR XLINK连接器

* IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器

IAR Embedded Workbench IDE提供一个框架,任何可用的工具都可以完整地嵌入其中,这些工具包括:

* 高度优化的IAR AVR C/C++编译器; * AVR IAR汇编器;

* 通用IAR XLINK Linker;

* IAR XAR库创建器和 IAR XLIB Librarian; * 一个强大的编辑器; * 一个工程管理器;

* IAR C-SPY

TM

调试器。

嵌入式IAR Embedded Workbench适用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式IAR Embedded Workbench有效提高用户的工作效率,通过IAR工具,用户可以大大节省工作时间。

使用IAR Embedded Workbench IDE,用户可以设计高级的工程模型。用户可以建立一个工作区,以创建一个或多个工程。并且已经有现成的工程模板用以开发应用工程和库。每个工程都可以建立以组为级别的结构,而在其中用户可以合理放置用户的源文件。每个工程用户都可以定义一个或多个build配置。

X.2.3 ICCAVR X.3 WinAVR软件

本节介绍如何使用WinAVR进行代码编辑、makefile文件配置、以及如何编译。

X.3.1 WinAVR软件简介

WinAVR (读作\)是一个针对于AVR单片机的免费开源软件工具包。在Windows平台上运行,包括GNU GCC C和C++编译器。

WinAVR 就是GCC的Windows版本,GCC原是在Linux类系统中运行。WinAVR软件的发行等事宜由自由软件基金会进行管理。由于是自由软件供大家免费使用,WinAVR拥有广大的用户群体。WinAVR 不支持浮点型变量,没有完整的集成开发环境(IDE)。ATmanAVR软件是基于GCC的IDE,界面友好,但是这是一个商业软件。

对于初学者来说,一般的应用不涉及浮点型变量的使用,故可以忽略WinAVR 不支持浮点型变量。可以用AVRStudio来编辑代码、相应的makefile文件以及执行编译命令,以弥补WinAVR集成开发环境的不足。

WinAVR软件的要点:

◆ WinAVR没有完整的集成开发环境,确切的说它是一个工具集。

◆ 代码的编辑可以使用PN工具或其他软件,最简单的如Windows自带的记事本。 ◆ 需要一个叫做makefile的文件进行编译; makefile 文件可以自行编写,也可用MFile工具生成(也可用AVRStudio软件进行设置,后面章节有介绍)。

◆ 与AVRStudio软件配合使用,可以下载程序、仿真等。 ◆ 可以在命令行的情形下执行编译命令(make)。

X.3.2 菜单图标简介

首先安装WinAVR软件,笔者安装的版本为2007版。 安装WinAVR以后桌面和开始菜单会有很多图标:

图X WinAVR的程序图标

● AVR Insight是AVR的仿真调试应用程序。

● AVR-libc Manual是软件的C语言函数库用户手册。

● GNU Maunals Online 图标对应一个网络URL链接,是GNU的在线帮助。 ● WinAVR 编译的时候需要一个叫做makefile的文件,其指定了工程编译时的相关参数(如芯片型号)。点击图中的MFile 图标可以打开MFfile应用程序,在其中可以做配置makefile文件。

● Programmers Notepad 是一个程序编辑器,在其中也可以执行编译选项(make)。 ● 图标Uninstall WinAVR 用于卸载 WinAVR 软件。 ● WinAVR User Manual 是WinAVR 用户手册。

由于我们使用AVRStudio软件编辑程序及配置makefile,故以上的图标多数不常用。

但为使读者对WinAVR有更大的认识、以及学习更多的方法,下一节还会对PN工具及MFile工具做一定的讲解。

X.2.3 使用Programmers Notepad编辑程序

Programmers Notepad是专门用于编辑代码的应用程序,不含烧写芯片、仿真程序等功能。

双击桌面或开始菜单的PN(Programmers Notepad)图标 界面。

为叙述方便,打开PN后我们点击打开文件按钮

,或者点击[File]>>[Open],在

,即可进入代码编辑

E:\\AVR Program\\Test文件夹下找到我们已经编辑好的文件Test.c 。

文件Test.c的内容如图中所示。

图X WinAVR的PN界面

此时,我们就可以使用PN进行代码的编辑了。 菜单栏 工具栏

给出常用的菜单选项;

给出了常规的撤消、剪切、复制等功能;

当我们想关闭正在编辑的程序时,可以单击右上角的最小化、最大化等按钮。

X.3.4 使用MFile配置makefile

首先解释一下什么是makefile。

当WinAVR编译器想编译一个文件时,需要一些参数数据。包括这段代码所对应的芯片类型(比如是ATmega16还是ATmega64)、所选择的晶振大小、优化级别、生成文件等参数,这些参数即存储在一个叫做makefile的文件中。

也就是说,只要代码文件和makefile文件都存在,即可对其进行编译。可以不使用PN编辑器等其它软件工具也可以进行编译。

双击桌面或开始菜单的MFile图标

,即可进入makefile配置界面。

图X WinAVR的MFile界面

现在我们为上一节中的Test.c 文件配置makefile:

① 点击菜单栏中的 [ Makefile ] 选项,依次按图中的 [MCU type] 选项,选择MCU类型为ATmega16。

图X MFile下选择 MCU类型

② [Main file name] 修改为 Test (与Test.c 配合),不必填写后缀名,这是需要编译

的目标文件;输出的文件也将以此命名。

③ [C/C++ source files] 中如果 Test.c 没有被勾选,则勾选上,或者直接浏览选择上;WinAVR-20070525默认是勾选的。

如果你的工程中还中还有其它C文件,则在此处加入,并以空格分开。

④ 为使初学者学习方便,其它选择默认即可;

⑤ 点击 [File] >> [Save as] 将其保存到Test.c相同的文件夹下。

图X 保存makefile

这样,我们用MFile工具简单地生成了一个makefile。

Makefile要点:

◆ 用记事本也可以编辑makefile,初学者这样做比较困难,需要对makefile有一定的了解。

◆ 配置 makefile时,[Output Format] 指输出向芯片烧写时所用的文件格式。

◆ [Optimization level] 标识编译时的优化级别,-0s是最佳优化,会获得最小的代码段;笔者建议产品未定型时采用-0级别,方便调试。

◆ [Assembler source file(s)] 指添加工程中除主程序外的汇编源程序。

◆ 点击 [Enable Editing of Makefile] ,可以使能在MFile中编辑makefile。 ◆ makefile 要放在与源代码文件相同的文件夹中。

X.3.5 使用make命令编译

重新打开PN工具,点击 [ Tools ] 菜单下的 Make All 命令,如果makefile文件配置正确,Test.c会得到编译,编译结果将显示在界面下方。

图X 执行Make All 命令

在界面下方的Output文本框中可以看到编译结果。

图X Make All 的编译结果

我们看到有一行编译参数,这就是WinAVR根据makefile而选择的相关参数。执行编译后生成了Test.hex,这是因为我们Makefile 中默认指定了输出ihex格式的输出文件(上文第④步),用于烧写芯片。Test.eep 是可以向芯片EEPROM烧写的文件。

结果的最后显示了代码占用的空间大小,图中显示FLASH区占用了992字节、RAM区没有占用。

如果要对文件重新编译,首先执行 [ Tools ] 菜单下的 Make Clean 命令,以清除上一次编译时产生的文件。这样编译不会受到上次文件的干扰。

X.4 AVR Studio软件

ATMEL公司推出AVR Studio环境。

其专门用于开发该公司AVR单片机的开发软件平台,它是一个完全免费的,基于AVR汇编语言的集成开发环境。AVR Studio包括AVR Assembler编译器(汇编语言编译器);AVR Studio软件模拟调试功能;AVR Prog串行下载功能;JTGA ICE在线仿真调试及下载等功能。如果使用该软件的下载功能和在线仿真调试功能,需要购买该软件支持的仿真下载硬件设备,如STK500下载器、JTGA ICE仿真器、AVRONE!、AVR Dragon等工具。

X.4.1 AVR Studio初识

笔者在Windows7操作系统中安装了AVR Studio 4.15,打开AVR Studio后的界面如下。

图X AVR Studio的界面

界面中有很多菜单栏和工具栏,菜单栏和Windows操作系统的其它界面相似。图中为工具栏做了简单介绍。FLASH、EEPROM下载工具栏和调试工具栏相对比较重要。

X.4.2 在AVR Studio新建工程

下面我们学习一下怎样在AVR Studio中新建一个工程。

① 启动AVR Studio后默认启动新建工程向导。如果没有这个界面,我们也可以单击 [Project] >> [Project Wizard] 以启动这个界面。

图X 工程向导

② 点击 [New Project] ,进入以下界面。

其实,在AVR Studio初始界面的菜单栏中直接点击 [Project] >> [New Project],也可进入下面界面。在 Project tyte 选项中会有AVR GCC C编译器和另一个汇编编译器的选项。

图X 工程向导

③ 由于我们要创建的是一个C源程序的工程,所在选择AVR GCC工程类型。单击 [AVR GCC] ,下一步则可以在Project name选项中填写工程名称。

如果勾选 [Create folder] 则会创建一个文件夹,与工程相关的文件都会保存在这个文件夹中,以方便工程管理。

选择好工程保存的位置后,则单击 [Next>>] 。

图X 填写工程

④ 设置完以上各步骤,则进入调试平台选择和调试芯片选择。AVR Studio 4允许可以选择多种开发调试工具;平台选择和芯片选择在新建工程以后依然可以更改。这里我们选择软件仿真 AVR Simulator,这是AVR Studio 自带的软件仿真工具。选择AVR Simulator平台后,右侧会出此平台支持的器件,我们选择ATmega16 。

图X 调试选项

⑤ 经过以上的步骤,我们已经成功新建了工程。

图X 新建了工程

X.4.2 编辑源代码及编译

我们新建了工程,这时即可编辑源代码,编写完成即可编译。

点击 Test.c 右上角的最大化,在空白处填写源代码。点击工具栏上的图标 点击 [Build] >> [Build],都可以执行编译命令。

,或者

图X 编辑源代码及编译

编译后,编译结果会显示在界面下方的Build 文本框。

如果编译有错误,在编译结果中单击有错误的一行,光标会跳转到出错的源代码处。一般情况下,错误都会在附近找到。

X.4.2 在AVR Studio中配置makefile工程选项

我们知道,WinAVR在编译源代码的时候要借助于makefile,而AVR Studio编译时调用的编译器就是AVR GCC(WinAVR),因此编译前须要配置makefile。

上节的源代码可以成功编译,但会给出一条警告:# warning \for \。这就是由于我们还没有定义makefile中的晶振大小。

我们已经讲述了用MFile工具配置makefile ,这节讲解如何用AVR Studio配置makefile。

① 菜单栏中单击 [Project] >> [Configuration Options]。

图X 点击Configuration Options

② 在这个新打开的界面中,我们即可以配置makefile 。我们看到晶振频率 [Frequency] 还没有填写。

图X 点击Configuration Options

将Frequency 选项修改为1000000 hz即1MHz。 Optimization 指优化级别,可以酌情修改。如果要使用其它makefile ,则勾选 Use Externa Makefile,并选择相应的makefile文件即可。注意勾选下面的 Create Hex file 选项,生成Hex文件。

③ 点击左侧导航栏的 Include Directories 选项,可以进头文件路径选择对话框。单击右上角的图标 可以填加路径。由于没有包含其它头文件,这里不做设置。

点击左侧导航栏的 Libraries 选项,可以进库文件路径选择对话框。由于没有包含库文件,这里不做设置。

图X 文件路径选择对话框

利用以上各个选项,即可在后台生成我们需要的makefile。

X.4.3 在AVR Studio中进行软件仿真

为便于讲解软件仿真,我们输入如下的源代码。

并在菜单栏中单击 [Project] >> [Configuration Options] 将优化级别Optimization 设置为 -00,否则以下的代码会被优化掉。

#include

int main() { unsigned char i; PORTA = 0xFF; DDRA = 0xFF; i = 1; i = 2; i = 3; PORTA = 1; PORTA = 2; PORTA = 3; while(1); return 0; }

编译后,点击 [Debug] >> [Start Debugging] ,即进入调试模式。工具栏的 具有同样功能,也能进入调试模式。如果点击 [Select Platform and Device],可以重新选择调试平台。

本文来源:https://www.bwwdw.com/article/6bhv.html

Top