当前位置:首页 > 单片机 > 单片机
[导读]SARM空间是AVR单片机最重要的部分,所有的操作必须依赖该部分来完成。变量在SARM空间的存储模式有tiny,small,large 三种,也就是对应于__tiny, __near,__far三中存储属性。一旦选择为哪种存储模式,对应的数据默

SARM空间是AVR单片机最重要的部分,所有的操作必须依赖该部分来完成。变量在SARM空间的存储模式有tiny,small,large 三种,也就是对应于__tiny, __near,__far三中存储属性。一旦选择为哪种存储模式,对应的数据默认属性也就确定了,但可以采用__tiny, __near,__far关键字来更改。


对于程序中的局部变量,编译器会自动处理的,我们也不可能加什么储存属性,但IAR提供了强大的外部变量定义。

IAR编译器内部使用了部分工作寄存器,留给用户的只有R4-R15供12个寄存器供用户使用,要使用工作寄存器必须在工程选项里打开锁定选项。
例:
定义两个变量使用工作寄存器R14,R15。

#include__regvar__no_initcharg@15;__regvar__no_initcharP@14;voidmain(void){g++;P++;}

在工程选项里c/c++ complier>code里打开要使用的寄存器R14-R15。

编译结果就如下,看看是不是直接使用了寄存器做为数据应用

//4voidmain(void)main:CFIBlockcfiBlock0UsingcfiCommon0CFIFunctionmain//5{g++;REQUIRE?Register_R14_is_global_regvarREQUIRE?Register_R15_is_global_regvarINCR15//6P++;}INCR14RET


注意:定义在寄存器里变量不能带有初始值。最好不要使用超过9个寄存器变量,不然可能引起潜在的危险,因为建立库的时候没有锁定任何寄存器。

定义变量的绝对地址.没有特性的变量是随机分配的,要给变量分配地址必须加以特性修饰注意在定义地址的时候千万不要和片内寄存器地址重合了。

定义没有存储特性的绝对地址变量必须加__no_init 或者const对象特性
__no_init char t @ 0x65;//定义在I/O地址以外
const char t @ 0x65;//定义只读变量的地址
例:

#include

__no_initcharu@0x65;voidmain(void){u++;}

对应汇编:


voidmain(void)main:{u++;}0000000E6E5LDIR30,1010000002E0F0LDIR31,000000048100LDR16,Z00000069503INCR1600000088300STZ,R16000000A9508RET

带存储特性的关键字定义变量的绝对地址__io,__ext_io定义变量在i/o空间


#include__iocharu@0x65;voidmain(void){u++;}

对应汇编:

void main(void)

main:{u++;}000000091000065LDSR16,10100000049503INCR16000000693000065STS101,R16000000A9508RET



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

日本横滨2023年8月7日 /美通社/ -- Fujitsu Semiconductor Memory Solution Limited宣布推出汽车级I2C接口512Kbit FeRAM——MB85RC512LY。目前可...

关键字: FUJITSU RAM 汽车 温度

纽约2023年8月4日 /美通社/ -- Resuticks因不懈追求创新性受众参与解决方案而受到认可,现在正在重新定义这一领域,专注于通过其旗舰产品RESUL为品牌及其受众...

关键字: TI IC CK RAM

AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服...

关键字: AVR单片机 RAM 寄存器

AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU)精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯...

关键字: AVR单片机 计算机 RAM

51单片机的 RAM 分为两个部分,一块是片内 RAM,一块是片外 RAM。标准 51 的片内 RAM 地址 从 0x00H~0x7F 共 128 个字节,而现在我们用的 51 系列的单片机都是带扩展片内 RAM 的,即...

关键字: 单片机 RAM 存储器

上海2023年2月14日 /美通社/ -- 步入2023年第一个季度,市场依然在震荡中前行。作为一家全球领先的金融科技经纪商,ATFX为了给全球客户提供具有前瞻性的分析报告,分析师团队早已密切关注金融市场动态,结合各国经...

关键字: ANTI RAM 基础知识 SIC

美国智能设备公司NUU宣布推出其首款5G智能手机NUU B20 5G。B20 5G可接入美国各地铺开的5G网络,并具有下一代Dimensity处理器的强大性能。B20 5G具有6.5英寸高分辨率FHD+显示器,90Hz刷...

关键字: 处理器 5G智能手机 GB RAM

全球最大石油公司沙特阿美(Saudi Aramco)的首席执行官阿明·纳赛尔表示,目前的全球能源转型计划存在缺陷,不会成为现实。纳赛尔称,现有的可再生能源和化石燃料替代品不可能充分满足全球不断增长的能源需求,所以在新能源...

关键字: CE 新能源 RAM 可再生能源

(全球TMT2022年10月21日讯)电信分析解决方案提供商Mobileum宣布,Miguel Carames已加入公司并担任漫游、网络服务和安全高级副总裁(SVP)。在这一职位上,Carames将领导漫游和安全业务部...

关键字: MOBILE RAM VERIZON

加利福尼亚州库比蒂诺2022年10月21日 /美通社/ -- 全球领先的电信分析解决方案提供商Mobileum今天宣布,Miguel Carames已加入公司并担任漫游、网络...

关键字: MOBILE RAM VERIZON
关闭
关闭