重要的#pragma 声明
重要的 声明
声明是基于单片机开发的特点而对标准 语法的一个扩充。它对充分利用单片机
内各类有限的资源起到不可或缺的关键作用。下面简单介绍几个最常用的 声明。
定义变量所处的数据段。其语法型式为:
属性名称
数据段名称可以自己任意命名,但习惯上有些约定的名称,其作用分别为:
- 缺省的数据段,在 系列单片机中的地址为 以上。一般的变量定义可
以放在这一区域。
- 特指第 页数据段,地址范围 ,但实际用户可用的空间不到
!"#字节,因为前面的一些地址空间已经分配给了片内寄存器。需要频繁或快速存取的变
量应该指定放在这一特殊区域,特别是位变量。
数据段名称必须和 文件中的数据段配置说明相关连才能真正发挥其定位作用。如果你
自己命名的数据段在 文件中没有特别说明,那此数据段的性质等同于“$。
数据段的“属性”可以缺省,它主要的目的是告诉编译器此段数据可适用的寻址模式。不同
的寻址模式所花的指令数量和运行时间都不同。对于 系列单片机,关键的是第 页数据
段 可 以 用 位 地 址 进 行 直 接 快 速 寻 址 , 故 对 应 此 数 据 段 应 尽 量 指 明 其 属 性 为
“%$。对于一般数据段没有属性描述,其缺省是
&$,将用 # 位地址间接寻址。
举几个数据段定义的例子加以进一步说明。
%''开始 页数据定义
()*+*,-./0.1
/2-32,4)5,267
/2-32,4*267
/2-32,40)0+(,67
/2-32,4-8-)67
98*7
()*+*,5)4-)/2.,7
:8.,3;<;=7
''开始普通数据段定义(结束 页数据段):8.,.>/ ?#@7
!A
定义一个常数数据段,必须和变量的 0)2-. 修饰关键词配合使用。其语法型式为:
A名称
该数据段下定义的所有数据将被放置在程序只读的 区,也就是 系列单片机内的
*-B程序空间区。常数段名称可以用户自由定义,但一般都用“ $,让连接器按可
用的 区域自由分配变量位置。举例如下:
A
0)2-.:8.,<A,?@C$B3-3-4,)$7
系列单片机开发及 语言编程简介