ImageCraft ICCAVR的中文使用说明
翻译詹卫前
一
运行光盘上的SETUP.EXE程序进行安装
aÎҵĵçÄÔ
打开光盘驱动器所对应的盘符
c SETUP.EXE
按照屏幕提示
a¿ªÊ¼
在对话框中填入
注意drive对应你的机器中的光盘驱动器盘符
cÈ·¶¨
其余同方法一
注意
按上述方法进行安装后对正式版
用户还要进行第二步的注册
在标准版中有一些功能限制代码的压缩
2
¿ÉÒÔÕâÑù×¢²á
a IDE
b Unlock Disk
c Help Importing a License from a Floppy Disk
²¢ÇÒ½øÐе¥»÷
c语言编译器ide代码编辑 ICCAVR软件自动进行注册
当你确定并再次重新启动ICCAVR后
对不是首次安装或使用时间已超过30天的用户
对这类用户在程序启动时已不能进入IDE环境
你应该选择按钮
这时会出现一个注册对话框Importing a License from
a Floppy Disk
c Unlock Disk
µ¥»÷ÉÏÒ»²½ÖÐÌáµ½µÄ°´Å¥
ICCAVR软件自动进行注册
当你确定并再次重新启动ICCAVR后
注意
软盘在注册时应打开写保护
软盘成为一张空盘
应该首先在菜单中选择
Your License to a Floppy Disk½«ÄãµÄ×¢²áÎļþ´«Ë͵½Ò»ÕÅÈíÅÌÉÏ
¶þ
ImageCraft 的ICCAVR介绍
ImageCraft 的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器
程序的一个工具
ICCAVR是一个综合了编辑器和工程管理器的集成工作环境
源文件全部被组织到工程之中编译错误显示在状态窗口中光标会自动跳转到编辑窗口中引起错误的那一行
INTEL HEX格式文件可被大多数的编程器所支持
ICCAVR是一个32位的程序
出于篇幅考虑仅介绍使用ICC AVR所必须具备的知识应对C语言有了一定程度的理解ICCAVR中的文件类型及其扩展名
文件类型是由它们的扩展名决定的
输入文件
这个文件保存由IDE所创建和修改的一个工程的有关信息
它可以由几个库封装在一起
如果库被引用
您也可以创建或修改一个符合你需要的库
.s 对应每个C语言源文件
.o 由汇编文件汇编产生的目标文件
.hex INTEL HEX格式文件
.eep INTEL HEX格式文件
.cof COFF 格式输出文件
.lst 列表文件
.
mp 内存映象文件
.cmd 调试命令文件
.dbg ImageCraft 调试命令文件
附注和扩充
#pragma
Õâ¸ö±àÒëÆ÷½ÓÊÜÒÔϸ½×¢
这个附注必须在函数之前定义func2是中断操作函数
并且保存和恢复函数所使用的全部寄存器
#pragma ctask <func1> <func2>...
这个附注指定了函数不生成挥发寄存器来保存和恢复代码
#pragma text:<name>
改变代码段名称
#pragma data:<data>
改变数据段名称这个附注在分配全局变量至EEPROM 中时必须被使用
#pragma abs_address:<address>
函数与全局数据不使用浮动定位这在访问中断向量和其它硬件项目时特别有用
使目标程序使用正常浮动定位
你可以在你的源代码中使用C ++的 // 类型的注释
你可以使用0b<1|0>* 来指定二进制常数0b10101等于十进制数21
¶ÁÕ߿ɲο¼ÔÚÏß»ã±à代码转换
IAR或其它ANSI C编译系统的代码转换
IAR C编译器作为应用于AVR的第一个C编译器当你从IAR 编译系统转换到ImageCraft编译系统时
IAR C中IO寄存器的定义与ICCAVR也是相同的
ICCAVR使用pragma附注描述中断操作函数
interrupt关键字下面是一个对照
#pragma interrupt_handler func:4// 4 是这个中断的向量号
ICCAVR可以使多个中断向量共用一个中断处理函数
interrupt [vector_name] func() // vector_name是某一个中断向量的名称
以增加程序的可读性
FLASH存贮器ICCAVR使用const关键字来达到相同的目的
这仅影响手工写的汇编函数
宏等而ICCAVR支持在线汇编
三
起步
自你启动IDE后进入\icc\examples.avr目录并且选择并打开工程然后从Project菜单中选择Options命令打开工程编译选项
然后从Project菜单中选择Make Project命令
并且在状态窗口中显示所有的信息
在与源文件同一个目录中输出
一个文件led.hex´ó¶àÊýÄÜÖ§³ÖAVR MCU的编程器和模拟器都支持这种格式这样就完成了一个程序的构筑
比如AVR Studio
ÔÚ±àÒë±êÇ©ÏÂÑ¡ÔñCOFF输出文件格式
你也可使用工具条或鼠标右键弹出菜单你可以在工程窗口单击鼠标右键选择编译选项
IDE将使用编辑器打开这个文件
作为试验可设置一些错误
IDE首先自动保存已经改变的文件这时在状态窗口中会显示错误信息或单击其左边的错误符号
基本上所有C编译器都是这样
开始一个新的工程
从Project菜单中选择New命令输出文件的名称取决于你的工程文件名称如果你创建一个名称为foo.prj的工程
自从创建你自己的工程后并且将这个文件加入到工程文件排列中Build¿ÉÒÔºÜÈÝÒ׵ع¹ÖþÕâ¸ö¹¤³Ì
Äã¿ÉÒÔʹÓÃATMEL的AVR Studio来调试你的代码
你可以使用应用程序向导来生成一些使用有关硬件的初始化代码
C程序的剖析
一个C程序必须定义一个main调用函数
可执行因此你也可以在你的目标系统中执行它
一个C程序需要设定目标环境
通常然后是无限循环地运行让我们看 \icc\examples目录中的文件led.c
ÑÓʱ³ÌÐòÐèÒªÓÐ×ã¹»µÄÑÓʱʱ¼ä*/
void Delay()
{
unsigned char a, b;
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口全部为高电平
在初始化一些IO寄存器后之后
并且在这个循环中改变LED的步进图案
在LED_On例程中直接写正确的数值到IO端口为能够看见图案变化LED_On例程调用了延时例程这一对嵌套循环只能给出延时的近似延时时间那么这个例程应该使用硬件定时器来完成延时
8515intr.c程序很简单
这两个例子可以作为你的程序的起点
ICCAVR的IDE环境
1
ÄãÊ×ÏÈÓ¦¸Ã½¨Á¢Ò»¸ö¹¤³ÌÎļþ²¢ÇÒ¶¨ÒåÊôÓÚÕâ¸ö
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论