ImageCraft ICCAVR User Guide

ImageCraft ICCAVR 的中文使用说明
ImageCraft ICCAVR 的中文使用说明
ImageCraft ICC AVR 编译器安装
1  运行光盘上的 SETUP.EXE 程序进行安装
方法一 a 打开 我的电脑 b 打开光盘驱动器所对应的盘符 c 双击光盘中文件 SETUP.EXE 的图标 d 按照屏幕提示 选定一个安装路径后进行安装 方法二 a 开始 菜单中选择运行项目 b 运行 对话框中填入 drive:\setup.exe 注意 drive 对应你的机器中的光盘驱动器盘符 c 确定 键开始安装 d 其余同方法一
注意
 按上述方法进行安装后 得到的是一个只可以使用 30 天的未注册版 对正式版 用户还要进行第二步的注册 才可得到一个无时间限制的正式版  ICC AVR 正式版分标准版和专业版 在标准版中有一些功能限制 代码的 压缩 工程和文件的配置检查在标准版中不可以使用
翻译 詹卫前
2  对安装完成的软件进行注册 对首次安装并且使用期未超过 30 天的用户 可以这样注册
a  启动 ICC AVR 编译器的集成环境 IDE b  将正式版中附带的一张名称为 Unlock Disk 的软盘插入你机器的软驱器中 c  在 IDE Help 菜单中寻找标题为 Importing a License from a Floppy Disk
的一项 并且进行单击
d  ICCAVR 软件自动进行注册 当注册完成后会提示你注册文件已从软盘移走
当你确定并再次重新启动 ICCAVR 会发现软件已经完成注册
对不是首次安装或使用时间已超过 30 天的用户 可这样注册
a  对这类用户在程序启动时已不能进入 IDE 环境 而是出现一个提示你注册的
对话框 你应该选择 YES 按钮
b  这时会出现一个注册对话框 对话框上有一个标题为 Importing a License from
a Floppy Disk 的按钮
c  将正式版中附带的一张名称为 Unlock Disk 的软盘插入你机器的软盘驱动
器中 单击上一步中提到的按钮
d  ICCAVR 软件自动进行注册 当注册完成后会提示你注册文件已从软盘移走
当你确定并再次重新启动 ICCAVR 会发现软件已经完成注册
注意
  Unlock Disk 软盘在注册时应打开写保护 否则无法完成注册   完成注册后 Unlock Disk 软盘成为一张空盘 不可以在另一台机器上进行
安装和注册
  当你需要在不同的电脑中使用 ICCAVR 或在同一台电脑中将 ICCAVR 重新安
装在与原来不同的目录位置时 应该首先在 Help 菜单中选择 Transferring
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
1
ImageCraft ICCAVR 的中文使用说明
Your License to a Floppy Disk 一项 将你的注册文件传送到一张软盘上
后再按上述方法进行安装注册
 ICCAVR 介绍
1  ImageCraft 的 ICCAVR 介绍 ImageCraft 的 ICCAVR 是一种使用符合 ANSI 标准的 C 语言来开发微控制器 MCU
程序的一个工具 它有以下几个主要特点
ICCAVR 是一个综合了编辑器和工程管理器的集成工作环境 IDE 其可在
WINDOWS9X/NT 下工作
源文件全部被组织到工程之中 文件的编辑和工程的构筑也在这个环境中完成 编译 错误显示在状态窗口中 并且当你用鼠标单击编译错误时 光标会自动跳转到编辑窗口中 引起错误的那一行 这个工程管理器还能直接产生您希望得到的可以直接使用的 INTEL HEX 格式文件 INTEL HEX 格式文件可被大多数的编程器所支持 用于下载程序到芯片 中去
ICCAVR 是一个 32 位的程序 支持长文件名
出于篇幅考虑 本说明书并不介绍通用的 C 语言语法知识 仅介绍使用 ICC AVR 所 必须具备的知识 因此要求读者在阅读本说明书之前 应对 C 语言有了一定程度的理解 2 ICCAVR 中的文件类型及其扩展名
文件类型是由它们的扩展名决定的 IDE 和编译器可以使用以下几种类型的文件
输入文件
.c 扩展名----表示是 C 语言源文件
.s 扩展名----表示是汇编语言源文件
.h 扩展名----表示是 C 语言的头文件
.prj 扩展名----表示是工程文件 这个文件保存由 IDE 所创建和修改的一个工程的有
关信息
.a 扩展名----库文件 它可以由几个库封装在一起 libcavr.a 是一个包含了标准 C 库和 AVR 特殊程序调用的基本库 如果库被引用 链接器会将其链接到您的模块或文件中 您也可以创建或修改一个符合你需要的库
输出文件
.s 对应每个 C 语言源文件 由编译器在编译时产生的汇编输出文件
.o 由汇编文件汇编产生的目标文件 多个目标文件可以链接成一个可执行文件
.hex INTEL HEX 格式文件 其中包含了程序的机器代码
.eep INTEL HEX 格式文件 包含了 EEPROM 的初始化数据
.cof COFF 格式输出文件 用于在 ATMEL 的 AvrStudio 环境下进行程序调试
.lst 列表文件 在这个文件中列举出了目标代码对应的最终地址
.mp 内存映象文件 它包含了您程序中有关符号及其所占内存大小的信息
.cmd NoICE 2.xx 调试命令文件
.noi NoICE 3.xx 调试命令文件
.dbg ImageCraft 调试命令文件 3 附注和扩充 #pragma 编译附注
这个编译器接受以下附注
#pragma interrupt_handler <func1>:<vector number> <func2>:<vector> ...
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
2
ImageCraft ICCAVR 的中文使用说明
这个附注必须在函数之前定义 它说明函数 func1 func2 是中断操作函数 所以编译
器在中断操作函数中生成中断返回指令 reti 来代替普通返回指令 ret 并且保存和恢复函数 所使用的全部寄存器 同样编译器根据中断向量号 vector number 生成中断向量地址
#pragma ctask <func1> <func2>... 这个附注指定了函数不生成挥发寄存器来保存和恢复代码 它的典型应用是在 RTOS 实时操作系统中让 RTOS 核直接管理寄存器
#pragma text:<name> 改变代码段名称 使其与命令行选项相适应
#pragma data:<data> 改变数据段名称 使其与命令行选项相适应 这个附注在分配全局变量至 EEPROM 中时必须被使用 读者可参考访问 EEPROM 的例子
#pragma abs_address:<address> 函数与全局数据不使用浮动定位 重定位 而是从 <address>开始分配绝对地址
在访问中断向量和其它硬件项目时特别有用
#pragma end_abs_address
结束绝对定位 使目标程序使用正常浮动定位
C++ 注释 如果你选择了编译扩充(Project->Options->Compiler) 你可以在你的源代码中使用 C ++
// 类型的注释 二进制常数 如果你选择了编译扩充(Project->Options->Compiler) 你可以使用 0b<1|0>* 来指定二 进制常数 例如 0b10101 等于十进制数 21 在线汇编
你可以使用 asm("string")函数来指定在线汇编代码 读者可参考在线汇编
4 代码转换 IAR 或其它 ANSI C 编译系统的代码转换 IAR C 编译器作为应用于 AVR 的第一个 C 编译器 它有十分丰富的源代码 当你从 IAR
编译系统转换到 ImageCraft 编译系统时 绝大多数符合 ANSI C标准的程序代码不需要转 换 IAR C IO 寄存器的定义与 ICCAVR 也是相同的 中断操作描述 ICCAVR 使用 pragma 附注描述中断操作函数 IAR 引入了语法扩 interrupt 关键字 下面是一个对照
在 ICCAVR 中 #pragma interrupt_handler func:4 // 4 是这个中断的向量号 func 为中断处理函数名称 ICCAVR 可以使多个中断向量共用一个中断处理函数 在 IAR 中 interrupt [vector_name] func() // vector_name 是某一个中断向量的名称 IAR C的中
断向量地址使用中断名称来代替 以增加程序的可读性
扩充关键字
IAR 引入 flash 关键字将项目分配进入程序存贮空间 FLASH 存贮器 ICCAVR 使用 const 关键字来达到相同的目的
过程调用转换 在两个编译系统之间函数参数传递使用的寄存器是不同的 这仅影响手工写的汇编函
在线汇编 宏等 IAR 不支持在线汇编符号 ICCAVR 支持在线汇编
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
3
ImageCraft ICCAVR 的中文使用说明
 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 的变化图案 延时程序需要有足够的延时时间*/
void Delay() {
unsigned char a, b;
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
4
ImageCraft ICCAVR 的中文使用说明
for (a = 1; a; a++)
for (b = 1; b; b++) ;
}
void LED_On(int i)
{ PORTB = ~BIT(i); /* 低电平输出使 LED 点亮 */
Delay(); }
void main()4
{ int i; DDRB = 0xFF; /*定义 B口输出*/ PORTB = 0xFF; /* B口全部为高电平 对应 LED 熄灭*/
while (1)
{ /*LED 向前步进 */
for (i = 0; i < 8; i++)
LED_On(i);
/* LED 向后步进 */ for (i = 8; i > 0; i--)
LED_On(i);
/* LED 跳跃*/ for (i = 0; i < 8; i += 2)
LED_On(i);
for (i = 7; i > 0; i -= 2)
LED_On(i);
}
}
这个 main 例程是很简单的 在初始化一些 IO 寄存器后之后 它运行在一个无限循
环中 并且在这个循环中改变 LED 的步进图案 LED 是在 LED_On 例程中被改变的 在 LED_On 例程中直接写正确的数值到 IO 端口 因为 CPU 运行很快 为能够看见图案 变化 LED_On 例程调用了延时例程 因为延时的实际延时值不能被确定 这一对嵌套循 环只能给出延时的近似延时时间 如果这个实际定时时间是重要的 那么这个例程应该 使用硬件定时器来完成延时
其它的例子 8515intr.c 程序很简单 但同样清楚地显示了如何用 C 写一个中断处理 过程 这两个例子可以作为你的程序的起点
ICCAVR IDE 环境
1  编译一个单独的文件
正常建立一个输出文件的次序是 你首先应该建立一个工程文件并且定义属于这个
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
5
ImageCraft ICCAVR 的中文使用说明
工程的所有文件 然而 我们有时也需要将一个文件单独地编译为目标文件或最终的输 出文件 这时可以这样操作 从 IDE 菜单 File 中选择 Compile File... 命令 来执 行 to Object to Output 中的任意一个 当你调用这个命令时 文件应该是打开的 并且在编辑窗口中可以编辑的
编译一个文件为目标文件 to Object 对检查语法错误和编译一个新的启动文件是 很有用的 编译一个文件为输出文件 to Output 对较小的并且是一个文件的程序较为 有用 注意 这里使用默认的编译选项 2  创建一个新的工程
为创建一个新的工程 从菜单 Project 中选择 New 命令 IDE 会弹出一个对话 框 在对话框中你可以指定工程的名称 这也是你的输出文件的名称 如果你使用一些 已经建立的源文件 你可在菜单 Project 中选择 AddFile(s) 命令
另外 你可以在菜单 File 中选择 New 命令来建立一个新的源文件来输入你的 代码 你可以在菜单 File 中选择 Save Save As 命令来保存文件 然后你可 以象上面所述调用 AddFile(s) 命令将文件加入到工程中 也可在当前编辑窗口中单击 鼠标右键选择 Add to Project 将文件加入已打开的工程列表中 通常你输出源文件在 工程同一个目录中 但也可不作这样要求
工程的编译选项使用菜单中 Project 中的 Options 命令 3  工程管理 工程管理允许你将多个文件组织进同一个工程 而且定义它们的编译选项 这个特
性允许你将工程分解成许多小的模块 当你处理工程构筑时 只有一个文件被修改和重 新编译 如果一个头文件作了修改 当你编译包含这个头文件的源文件时 IDE 会自动 重新编译已经改变的头文件 一个源文件可以写成 C 或汇编格式的任意一种 C 文件必须使用 .c 扩展名 汇 编文件必须使用 .s 扩展名 你可以将任意文件放在工程列表中 例如你可以将一个 工程文档文件放在工程管理窗口中 工程管理器在构筑工程时对源文件以外的文件不予 理睬 对目标器件不同的工程 可以在编译选项中设置有关参数 当你新建一个工程时 使用默认的编译选项 你可以将现有编译选项设置成默认选项 也可将默认编译选项装 入现有工程中 默认编译选项保存在 default.prj 文件中 为避免你的工程目录混乱 你可以指定输出文件和中间文件到一个指定的目录 通 常这个目录是你的工程目录的一个子目录
4  编辑窗口 编辑窗口是你与 IDE 交流信息的主要区域 在这个窗口中你可以修改相应的文件
当编译存在错误时 用鼠标单击有关错误信息时 编辑器会自动将光标定位在错误行的 位置 注意 C 源文件中缺少分号 的错误 编辑器定位于其下面一行 5  应用构筑向导
应用构筑向导是用于创建外围设备初始化代码的一个图形界面 你可以单击工具条
中的 Wizard 按钮或菜单 Tools 中的 ApplicationBuilder 命令来调用它
应用构筑向导使用编译选项中指定的目标 MCU来产生相应的选项和代码 应用构筑向导显示目标 MCU 的每一个外围设备子系统 它的使用是很显而易见的 在这里你可以设置 MCU 的所具有的中断 内存 定时器 IO 端口 UART SPI 和模拟 量比较器等外围设备 并产生相应的代码 如果你需要的话 还可产生 main( )函数 6  状态窗口
状态窗口显示 IDE 的状态信息
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
6
ImageCraft ICCAVR 的中文使用说明
7  终端仿真 IDE 有一个内置的终端仿真器 注意它不包含任意一个 ISP 在系统编程 功能
它可以作为一个简单的终端 或许可以显示你的目标装置的调试信息 也可下载一个 ASC
码文件
6.20 版本开始 IDE 加入了对 ISP 的支持
 菜单解释
1 弹出菜单
在 ICCAVR 环境中单击右键 那么 ICCAVR 会根据实际情况弹出相应的工具菜单
2 File Menu 文件菜单
New 新建一个文件 你可在编辑窗口是输入文字或代码 Reopen 重新打开历史文件 有关历史文件显示的右边的子菜单中 Open 打开一个已以经存在的文件用于编辑 文件用浏览窗口选择 Reload …form Disk 放弃全部的修改 从磁盘中重新装载当前文件 Reload ….from Back UP 从最后一次的备份文件中装载当前文件 Save 保存当前文件 如果环境设置中设置了保存备份文件 则将原文件以 <file>.~<ext>形式保存 Save as 将当前文件用另外一个名称来保存 Close 关闭当前文件 如果文件有过修改 系统会进行提示 Compile File …to Object 编译当前文件成目标文件 注意目标文件不可以直接
用于对芯片编程或用于调试 其主要用于 语法检查 为创建新的启动文件或库产生 目标文件
Compile File ... to Output 编译当前文件成输出文件 其产生的输出文件可用于编
程器和调试器
Save All 保存所有打开的文件 Closs All 关闭当前打开的所有文件 同样它会提示你保存已经修改的文件 Print 打印当前文件 Exit 退出 ICCAVR IDE 环境
3 Edit Menu 编辑菜单
Undo 撤消最后一次的修改 Redo 撤消最后一次的 Undo Cut 剪切选择的内容到剪帖板 Copy 拷贝选择的内容到剪帖板 Paste 将剪帖板内容粘帖在当前光标的位置 Delete 删除选择的内容 Select All 选择全部内容 Block Indent 对选择的整块内容右移 Block Outdent 对选择的整块内容左移
4 Search menu 寻找菜单
Find …在编辑窗口中寻找一个文本 它有以下选项 Match Case – 区分大小写 Whole Word – 全字匹配
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
7
ImageCraft ICCAVR 的中文使用说明
Up/Down –往上或往下
Find in Files... –在当前打开的文件中或在当前工程的所有文件中或当前目录中
的文件中寻找一段文本 它有以下选项
Case Sensitive –大小写敏感 Whole Word - 全字匹配
Regular Expression – 寻找规则的表达式 Replace... – 在编辑器中替换文本 Find Again – 寻找下一个 Goto Line Number – 转到指定行号 Add Bookmark – 添加书签 Delete Bookmark – 删除书签 Next Bookmark – 跳转到下一个签 Goto Bookmark – 跳转到指定的书签
5 View Menu 视图菜单 Status Window – 如果选中 显示状态窗口
Project Makefile – 以只读方式打开 makefile 文件
Output Listing File – 以只读方式打开列表文件 6 Project Menu 工程菜单 New... – 创建一个新的工程文件 Open –打开一个已经存在的工程文件
Open All Files... – 打开工程的全部源文件
Close All Files – 关闭全部打开的文件
Reopen... – 重新打开一个最近打开过的工程文件
Make Project –解释和编译已经修改的文件为输出文件
Rebuild All – 重新构筑全部文件 注意在版本升级后对原有工程最好全部重新构筑 Add File(s) – 添加一个文件到工程中 这个文件可以是非源文件
Remove Selected Files – 从工程中删除选择的文件
Option... – 打开工程编译选项对话框 Close – 关闭工程 Save As ... – 将工程换一个名称存盘 7 Tools Menu 工具菜单 Environment Options – 打开环境和终端仿真器选项对话框
Editor and Print Options –打开编辑和打印选项对话框 AVR Calc – 打开 AVR 计算器 可以计算 UART 的波特率 定时器的定时常数 Application Builder –打开应用向导程序 生成硬件的初始化代码
Configure Tools – 允许你添加自己的内容到工具菜单 Run –以命令行方式运行一个程序 8 Compiler Options 编译选项 编译选项总共有三个页面 Paths Compiler 和 Target 在 Paths 页面中有 Include Path(s) –你可以指定包含文件的路径
Assembler Include Path(s) – 指定汇编包含文件的路径 Library Path – 链接器所使用的库文件的路径
Output Directory –输出文件的目录
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
8
ImageCraft ICCAVR 的中文使用说明
Compiler 页面有 Strict ANSI C Checking – 严格的 ANSI C 语法检查
Accept Extensions – 接受 C++类型语法扩充
Macro Define(s) – 定义宏 宏之间用空格或分号分开 宏定义形式如下 name[:value] name[=value] 例如 DEBUG:1;PRINT=printf
等价于 #define DEBUG 1 #define PRINT printf
Macro Undefine(s) –同上 但意义相反
Output File Format – 输出文件格式 COFF/HEX Intel HEX COFF Optimizations – 代码优化 Default – 基本优化 象寄存器分配 共用相同的子例程等 Maximize Code Size Reduction – 只有专业版才可使用 它调用了代码压缩优化
除了无用的碎片代码
Target 页面有
Device Configuration – 选择目标 MCU
Memory Sizes – 要选择"Custom" 时指定内存大小 包括 ROM SRAM EEPROM
Text Address – 通常代码地址开始于中断向量区域后面
Data Address – 指定数据起始地址 通常为 0x60
Use Long JMP/CALL – 指定 MCU 是否支持长跳转和长调用
Enhanced Core – 指定硬件支持增强核指令
IO Registers Offset Internal SRAM – 指定内部 SRAM 的偏移量 例如, 8515 SRAM
起始于 0x60, IO 寄存器空间后面延伸了 512 字节 而 Mega603 , IO 寄存器覆盖在 SRAM 空间中 因此 SRAM 也是从 0 开始的
Internal External SRAM – 指定你的目标系统的数据 SRAM 类型
PRINTF Version – 选择 PRINTF 的版本
Small Basic: 只有 %c, %d, %x, %X, %u, and %s 格式支持
Long: 支持 %ld, %lu, %lx, %lX
Floating point: %f 支持 注意这个选项需要很大的内存
AVR Studio Simulator IO – 如果选中 AVR Studio 的终端模拟仿真被支持
Additional Libraries –使用标准库以外的附加库
Strings in FLASH – 字符串只保存在 FLASH存贮器中
Return Stack Size – 指定编译器使用的硬件堆栈的大小 编译器使用的软件堆栈的大小
不需地指定
Non Default Startup –允许你指定一个启动文件的位置 系统默认的启动文件在 Paths 页 中指定 这样 IDE 可以使用多个启动文件
Unused ROM Fill Pattern – 用一串十六进制数填充空余的 ROM 空间
 C 库函数与启动文件
1  启动文件 这个链接器会自动将启动文件连接到您的程序之前 并将标准库 libcavr.a 与你的程序
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
9
ImageCraft ICCAVR 的中文使用说明
相连接 启动文件根据目标 MCU 的不同在 crtavr.o crtatmega.o 中间任意选择一个 动文件定义了一个全局符号__start 它也是您的程序的起点 启动文件的功能有
1 初始化硬件和软件堆栈指针
2 idata 区拷贝初始化数据到直接寻址数据区 data
3 bss 区全部初始化为零
4 调用用户主例程 main 函数 5 定义一个退出点 如果你的主函数 main( )一旦退出 它将进入这个退出点进行无
限循环 启动文件也定义了复位向量 你不需要修改启动文件来使用别的中断 具体可参考中 断操作部分
为修改和使用新的启动文件 cd \icc\libsrc.avr ; 进入你安装的编译器路径
<edit crtavr.s> ; 编辑修改crtavr.s 文件
<open crtavr.s using the IDE> ; 用 IDE 打开 crtavr.s 文件
<Choose "Compile File To->Object"> ;选择编译到目标文件 创建一个新的 crtavr.o
copy crtavr.o ..\lib ; 拷贝到库目录
如果您使用的目标 MCU Mega 你应该用"crtatmega" 代替"crtavr" 注意 Mega 的每 个中断入口地址使用两个字 word 而非 Mega 芯片每一个中断入口地址使用一个字
word .
你也可以有多个启动文件 你可以在工程选项对话框中很方便地直接指定一个启动文 件加入您的工程中 注意 您必须指定启动文件的绝对路径或启动文件必须位于工程选项 库路径所指定的目录中
2  常用库介绍
1 库源代码
这个库源代码 缺省路径为 c:\icc\libsrc.avr\libsrc.zip 是一个密码保护的 ZIP 压缩文件 你可以从互连网上任意下载一个 UNZIP 程序进行解压缩 当本软件被开锁后 密码显示在
"About"对话框中 例如 unzip -s libsrc.zip
; unzip 提示输入密码 2 AVR 特殊函数----- ICCAVR 有许多访问 UART EEPROM SPI 的函数 堆栈检
查函数对检测堆栈是否溢出很有用 另外我们的互连网上有一个页专门存放用户写的源代 码
3 io*.h (io2313.h, io8515.h, iom603.h, ... 等.) 这些文件中是从 ATMEL 官方公开的定义 IO 寄存器的源文件经过修改得到的 应该用 这些文件来代替老的 avr.h 文件
PORTB = 1; uc = PORTA; 4 macros.h 这个文件包含了许多有用的宏和定义 5 其它头文件
广州市天河双龙电子有限公司 WWW.SL.COM.CN 选择双龙电子 选择未来科技
10
Loading...
+ 23 hidden pages