【ACCESS精品源码栏目提醒】:网学会员--在 ACCESS精品源码编辑为广大网友搜集整理了:2 AVR 开发环境与工具入门 - 讲义教程绩等信息,祝愿广大网友取得需要的信息,参考学习。
第X章 AVR开发环境与工具入门 X.1 AVR单片机的开发环境 这一章我们来介绍一下AVR单片机的开发环境。
对于一款单片机即可以用汇编语言对其进行编程也可以利用其它的高级语言比如C语言对其编程。
51系列单片机的C编译器较通用的如德国的Keil集成开发环境IDE及在国内相对普及的伟福软件WAVE。
AVR的开发环境相对较多。
许多第三方的厂商为AVR系列单片机开发了对应的AVR单片机C编译器每个C编译器各有特点。
其中比较主要的有CVAVRCodeVisionAVR、EWAVRIAR Embedded Workbench、ICCAVR、WinAVRGCCAVR。
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 UARTUSART 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 PCF8583DS1302 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 打开程序自带的例子点击图标 。
这些范例通常位于安装文件夹下的/examples/下面。
图X CVAVR IDE的程序编辑界面 对这个例子执行编译命令点击对应图标按钮 会弹出如下对话框给出编译结果的相关信息 图X CVAVR IDE的程序编辑界面 当我们编辑好程序并且正确编译后可以点击图标 进行调试程序第一次安装并没有指定调试器顺着CVAVR的向导可以指定调试器比如 AVRStudio 4。
点击左侧的Code Templates会看到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-SPYTM调试器。
嵌入式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 读作whenever是一个针对于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是专门用于编辑代码的应用程序不含烧写芯片、仿真程序等功能。
双击桌面或开始菜单的PNProgrammers Notepad图标 即可进入代码编辑界面。
为叙述方便打开PN后我们点击打开文件按钮 或者点击FileOpen在E:AVR ProgramTest文件夹下找到我们已经编辑好的文件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 files 指添加工程中除主程序外的汇编源程序。
◆ 点击 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 GCCWinAVR因此编译前须要配置makefile。
上节的源代码可以成功编译但会给出一条警告 warning F_CPU not defined 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 while1 return 0 编译后点击 Debug Start Debugging 即进入调试模式。
工具栏的 具有同样功能也能进入调试模式。
如果点击 Select Platform and Device可以重新选择调试平台。
图X 点击调试按钮 调试工具栏的图标是 主要有以下的功能 按钮 Stop Debugging 停止程序仿真调试返回到代码编辑状态。
按钮 Run 让程序自由顺序执行直到程序运行结束、遇到断点及点击暂停按钮。
按钮 Reset 复位按钮相当于按下电路板上的复位键。
按钮 Step Into 单步执行。
当遇到子函数时进入函数体内执行并且光标跳转到子函数处。
在C语言窗口中每次执行一条语句。
执行一次后窗口信息更新一次。
按钮 Step Over 单步执行。
当遇到子函数时执行子函数光标不跳转到子函数处。
执行一次后窗口信息更新一次。
按钮 Step Out 单步执行。
一直执行到当前程序结束为止如果存在断点则停止执行。
执行后窗口信息更新。
按钮 Run to Cursor 。
运行到光标处暂停。
按钮 Toggle Breakpoint 。
用于设置断点。
单步调试到如图的情形。
选中变量i 右键点击变量 i 出现如图菜单点击 Add Watch:i 则打开Watch 窗口可以观察变量的值。
图X 点击Add Watch:i 图X Watch 窗口 点击右侧 I/O View 窗口的对应寄存器下面的观察窗口出现对应的端口值。
图X I/O View 窗口 这样我们就可以对其进行简单的软件仿真。
当我们具有JTAG ICE等仿真工具时则可以修改调试仿真平台为JTAG ICE进行硬件仿真。
操作界面和上面是相同的。
本章结束。
上一篇:
JCS缓存简介
下一篇:
初中团支部学期工作总结