您的位置 首页 主动

【IAR学习】学习笔记

1、怎么生成map文件:4、IAR编译器默认支持的指针变量最大为0xFFFF,如果超过0XFFFF,则需要再OPTION内进行设置。Project–>Option–>Gene

1、怎样生成.map文件:

4、IAR编译器默许支撑的指针变量最大为0xFFFF,假如超越0XFFFF,则需求再OPTION内进行设置。Project–>Option–>General–>Target–>Data model挑选Large。

原文有图片,请到原文看:http://www.52solution.com/bbs/redirect.php?tid=1128&goto=lastpost
IAR学习笔记(摘录)
IAR for AVR 学习笔记(1)–数据类型

数据类型(编译器支撑 ISO/ANSI C 根本数据类型和一些附加数据类型)

1.1. 整型数据

bool 数据类型在C++言语里是默许支撑的。假如你在C代码的头文件里包括stdbool.h, bool数据类型也能够运用在C言语里。也能够运用布尔值 false和 true。

1.2.浮点数据类型:

1.3.指针类型:指针有数据指针和函数指针。

1、数据指针:

数据指针的巨细为8位,16位,24位。界说为:在整型数据类型后加”*”符号。
例如:char * p;
整型数据没有24位,详细界说指针见后边扩展关键字章节。

2、函数指针:函数指针的巨细为16位,24位。
指针界说:在函数类型后加”*”符号

IAR for AVR 学习笔记(2)–扩展关键字

能够用来处理数据,函数的寄存等。有了它咱们就能够界说变量寄存在EEPROM,FLASH空间。界说中止函数,指针等等。IAR关键字许多,这儿只罗列常用的。

2.1.扩展关键字:用于操控数据和指针。

__eeprom 用于EEPROM 存储空间, 操控数据寄存,操控指针类型和寄存
__tinyflash, __flash, __farflash, __hugeflash 用于flash 存储空间, 操控数据寄存,操控指针类型和寄存:
__ext_io, __io 用于I/O存储空间, 操控数据寄存,操控指针类型和寄存
__regvar 放置一个变量在作业寄存器中

2.2.函数扩展关键字:。

__nearfunc __farfunc 用于操控数据寄存,这组关键字必须在函数声明和界说的时分指定:
__interrupt. 关键字操控函数的类型。这组关键字必须在函数声明和界说的时分指定
__root. 关键字只是操控有界说的函数:

2.3.其它特别的关键字:

@ 用于变量的肯定地址定位。也能够用#pragma location 指令
#pragma vector 供给中止函数的进口地址。
__root 确保没有运用的函数或许变量也能够包括在方针代码中
__no_init 制止系统启动的时分初始化变量.
asm, __asm 刺进汇编代码

IAR for AVR 学习笔记(3)–位操作

3.1.在c言语里对位的操作如一般如下:

PORTB|=(1<<2);//置PORTB的第2位=1
PORTB&=~(1<<2);//置PORTB的第2位=0
PORTB^|=(1<<2);//取反PORTB的第2位
While(PORTB&(1<<2));//判别1
While(!(PORTB&(1<<2)));//判别为0

3.2.IAR编译器对位的支撑更强壮,除了上面的方法外还有以下更简略的操作方法:

PORTB_ Bit2=1; //置PORTB的第2位=1
PORTB_ Bit2=0; //置PORTB的第2位=0
PORTB_ Bit2=~ PORTB_ Bit2;//取反PORTB的第2位
While(PORTB_ Bit2);或许while(PORTB_Bit2==1);//判别1
while(PORTB_ Bit2==0);//判别0
PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位传送到PORTC的第4位

3.3.位变量界说:

因为iar运用了扩展言语,它对位域的支撑变为最小为char类型,咱们能够很方便地用来界说位变量。

选用结构体来界说位变量:

struct
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
}t;

然后就能够用以下位变量了。

t.bit0=1;
t.bit0=~t.bit0;

可是选用以上结构体做出来的位变量只能够拜访t的位,不能够直接拜访变量t,和规范的IAR位操作也不一样。选用联合体来界说作用更佳。

#i nclude
union
{
unsigned char t;
struct
{unsigned char t_bit0:1,
t_bit1:1,
t_bit2:1,
t_bit3:1,
t_bit4:1,
t_bit5:1,
t_bit6:1,
t_bit7:1;
};
};
void main(void)
{
t_bit0=1;//拜访变量t的位
t_bit0=~t_bit0;
PORTB=t;//直接拜访变量t
}

位变量也能够直接界说在作业寄存器里。

3.4 bool 数据类型在C++言语里是默许支撑的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/259039.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部