首页 iccavr使用说明

iccavr使用说明

举报
开通vip

iccavr使用说明iccavr使用说明 ICCAVR中文使用说明(1) ImageCraft ICCAVR 的中文使用说明 ICCAVR 介绍 1 ImageCraft 的ICCAVR 介绍 ImageCraft 的ICCAVR 是一种使用符合ANSI 标准的C 语言来开发微控制器MCU 程序的一个工具它有以下几个主要特点 ICCAVR 是一个综合了编辑器和工程管理器的集成工作环境IDE 其可在 WINDOWS9X/NT 下工作 源文件全部被组织到工程之中文件的编辑和工程的构筑也在这个环境中完成编译 错误显示在状...

iccavr使用说明
iccavr使用说明 ICCAVR中文使用说明(1) ImageCraft ICCAVR 的中文使用说明 ICCAVR 介绍 1 ImageCraft 的ICCAVR 介绍 ImageCraft 的ICCAVR 是一种使用符合ANSI 标准的C 语言来开发微控制器MCU 程序的一个工具它有以下几个主要特点 ICCAVR 是一个综合了编辑器和 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 管理器的集成工作环境IDE 其可在 WINDOWS9X/NT 下工作 源文件全部被组织到工程之中文件的编辑和工程的构筑也在这个环境中完成编译 错误显示在状态窗口中并且当你用鼠标单击编译错误时光标会自动跳转到编辑窗口中 引起错误的那一行这个工程管理器还能直接产生您希望得到的可以直接使用的INTEL HEX 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 文件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 func2 是中断操作函数所以编译 器在中断操作函数中生成中断返回指令reti 来代替普通返回指令ret 并且保存和恢复函数 所使用的全部寄存器同样编译器根据中断向量号vector number 生成中断向量地址 #pragma ctask ... 这个附注指定了函数不生成挥发寄存器来保存和恢复代码它的典型应用是在RTOS 实时操作系统中让RTOS 核直接管理寄存器 #pragma text: 改变代码段名称使其与命令行选项相适应 #pragma data: 改变数据段名称使其与命令行选项相适应这个附注在分配全局变量至EEPROM 中时必须被使用读者可参考访问EEPROM 的例子 #pragma abs_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 支持在线汇编 ICCAVR中文使用说明(2) 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 命令在编译标签下
本文档为【iccavr使用说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:18KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-11
浏览量:24