3.4 ICCAVR向导
1.起步
自启动IDE后,首先从“Project”菜单系统选择“Open”命令,进入“\icc\examples.avr”目录并且选择并打开“led”工程,工程管理器显示在这个工程中只有一个文件led.c。然后从“Project”菜单中选择“Options”命令打开工程编译选项,在“Target”标号下选择目标处理器,然后从“Project”菜单中选择“Make Project”命令,IDE将调用编译器编译这个工程文件,并且在状态窗口中显示所有的信息。
如果没有错误,在与源文件同一个目录(在这个例子中是\icc\examples.avr)中输出一个文件led.hex。这个文件是INTEL HEX格式,大多数能支持AVR MCU的编程器和模拟器都支持这种格式,并且能下载这个程序进入目标系统,这样就完成了一个程序的构筑。
如果希望用支持COFF调试信息的工具来测试程序,比如AVR Studio,那么需要从“Project”菜单中选择“Options”命令在编译标签下选择“COFF”输出文件格式。对一些常用的功能,也可使用工具条或鼠标右键弹出菜单。例如,可以在工程窗口单击鼠标右键选择编译选项。
在工程窗口中双击文件名,IDE将使用编辑器打开这个文件。按这个方法打开led.c,作为试验可设置一些错误,例如从一行中删除分号“;”。现在从“Project”菜单中选择“Make Project”命令,IDE首先自动保存已经改变的文件,且开始编译这个文件。这时在状态窗口中会显示错误信息,单击状态窗口中错误信息行或单击其左边的错误符号,光标将移到编辑器中错误行的下面一行上(基本上所有C编译器都是这样)。
开始一个新的工程:
从“Project”菜单中选择“New”命令,并且浏览至希望输出工程文件的目录,输出文件的名称取决于工程文件名称。例如,如果创建一个名称为“foo.prj”的工程,那么输出文件名称为“foo.hex”或“foo.cof”等。
自从创建工程后,可以开始写源代码(C或汇编格式),且将这个文件加入到工程文件排列中。单击工具栏中“Build”图标,可以很容易地构筑这个工程,IDE输出与ATMEL的AVR Studio完全兼容的COFF文件,可以使用ATMEL的AVR Studio来调试代码。
为更容易地使用这个开发工具,可以使用应用程序向导来生成一些使用有关硬件的初始化代码。
2.C程序的剖析
一个C程序必须定义一个main调用函数,编译器会将你的程序与启动代码和库函数链接成一个“可执行”文件,因此也可以在目标系统中执行它。启动代码的用途在启动文件中很详细地被描述了,一个C程序需要设定目标环境,启动代码初始化这个目标使其满足所有的要求。
通常main例程完成一些初始化后,然后是无限循环地运行。作为例子,让我们看\icc\examples目录中的文件led.c。
#include<io8515.h>
/* 为使能够看清LED的变化图案,延时程序需要有足够的延时时间*/
整个main例程是很简单的,在初始化一些IO寄存器之后,它运行在一个无限循环中,并且在这个循环中改变LED的步进图案。LED是在LED_On例程中被改变的,LED_On例程中直接写正确的数值IO端口。因为CPU运行很快,为能够看见图案变化,LED_On例程调用了延时例程。因为延时的实际延时值不能被确定,这一对嵌套循环只能给出延时的近似延时时间;如果这个实际定时时间是重要的,那么这个例程应该使用硬件定时器来完成延时。
其他的例子,8515intr.c程序很简单,但同样清楚地显示了如何用C写一个中断处理过程,这两个例子可以作为程序的起点。