IAR for AVR 学习笔记
IAR for AVR 学习笔记(1)--数据类型 IAR for AVR 学习笔记(2)--扩展关键字 IAR for AVR 学习笔记(3)--位操作 IAR for AVR 学习笔记(4)--Flash操作 IAR for AVR 学习笔记(5)--SRAM操作 IAR for AVR 学习笔记(6)--中断及相关函数操作 IAR for AVR 学习笔记(7)--头文件含义 IAR for AVR 学习笔记(8)--汇编嵌入方式 【IAR for AVR 学习笔记】是一系列关于如何使用IAR Embedded Workbench集成开发环境进行AVR微控制器编程的学习资料。IAR for AVR提供了针对AVR芯片优化的C/C++编译器,使得开发者能高效地编写和调试代码。 在【数据类型】部分,IAR for AVR支持ISO/ANSI C的基本数据类型,如`bool`、整型(`int`、`short`、`long`等)和浮点型(`float`、`double`)。此外,还提供了一些附加数据类型,如8位、16位和24位的数据指针。`bool`类型在C语言中可通过包含`stdbool.h`头文件启用,可使用`false`和`true`作为布尔值。指针类型包括数据指针和函数指针,它们可以通过在数据类型或函数类型后添加`*`来定义。数据指针的大小可为8位、16位或24位,而函数指针则为16位或24位。 【扩展关键字】是IAR for AVR编译器特有的功能,允许开发者对数据和函数的存储位置进行控制。例如,`__eeprom`关键字用于将变量存储在EEPROM中,`__flash`、`__farflash`和`__hugeflash`用于不同类型的Flash存储,`__ext_io`和`__io`则用于I/O存储空间。函数扩展关键字如`__nearfunc`和`__farfunc`控制函数的存储位置,`__interrupt`用于定义中断服务函数,`__root`确保未使用的函数和变量也会被包含在目标代码中。其他关键字如`@`用于指定变量的绝对地址,`#pragma location`和`#pragma vector`分别用于定位变量和中断函数的入口地址,`__no_init`则禁止系统启动时初始化变量,`asm`和`__asm`用于插入汇编代码。 【位操作】是AVR编程中的一个重要方面,IAR编译器提供了强大的位操作支持。例如,可以使用位移操作符`<<`和`>>`以及逻辑运算符`&`、`|`和`~`来直接对单个位进行设置、清除和翻转。IAR还提供了一种更简洁的位操作方式,如`PORTB_Bit2=1`直接设置PORTB的第2位。位变量的定义可以通过结构体或联合体实现,这使得可以方便地管理和操作单个位,而不仅仅是整个字节。例如,通过联合体定义的位变量可以直接访问和修改其位成员,同时也可以访问整个变量。 这些笔记涵盖了IAR for AVR开发的基础知识,包括数据类型的选择、使用扩展关键字优化代码存储、以及位操作的高级技巧,这些都是在AVR微控制器开发中不可或缺的部分。通过学习这些笔记,开发者能够更好地理解和掌握IAR工具链在AVR上的应用,从而编写出更加高效和优化的代码。
剩余11页未读,继续阅读
- yikuang20122013-05-14不错,给了我很大的帮助,谢谢
- lhj_winner2013-05-27东西很好,非常感谢!
- jinwentian2013-08-06非常好的针对IAR for avr的笔记
- Gery02182014-02-21很好,很详细。
- 粉丝: 2
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助