IAR 扩展关键字

发布者:GoldenSerenity最新更新时间:2016-12-29 来源: eefocus关键字:IAR  扩展关键字 手机看文章 扫描二维码
随时随地手机看文章

1.扩展关键字:用于控制数据和指针


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

 

2.函数扩展关键字:


__nearfunc __farfunc 用于控制数据存放,这组关键字必须在函数声明和定义的时候指定
__interrupt. 关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定
__root. 关键字仅仅控制有定义的函数

 

3.其它特别的关键字:


@ 用于变量的绝对地址定位。也可以用#pragma location 命令
#pragma vector 提供中断函数的入口地址。
__root 保证没有使用的函数或者变量也能够包含在目标代码中
__no_init 禁止系统启动的时候初始化变量. 
asm, __asm 插入汇编代码

====================================================================

 

__root 关键字保证没有使用的函数或者变量也能够包含在目标代码中.
定义存放在__flash 空间的数据在程序编译时会自动生成代码嵌入到flash代码中,对于程序没有使用也要求编译的数据(比如可以在代码中嵌入你的版本号,时间等)必须加关键字__root 限制。
例:


#i nclude  
__root __flash unsigned char p @ 0x10 =0x56;  
void main(void)  
{  
  
}


程序没有使用P变量,编译也会生成该代码。  
:020000020000FC  
:1000000016C018951895189518951895189518955F  
:10001000569518951895189518951895189518953A  
:10002000189518951895089500008895FECF0FE94A  
:100030000DBF00E00EBFC0E8D0E003D0F4DFF4DF76  
:06004000F3CF01E008957A  
:0400000300000000F9  
:00000001FF



关键字:IAR  扩展关键字 引用地址:IAR 扩展关键字

上一篇:IAR RAM的操作
下一篇:IAR 数据类型

推荐阅读最新更新时间:2024-03-16 15:27

IAR MSP430设置合理堆栈大小
最近在MSP430-169LCD(MSP430F169,RAM为2KB)调试一些ucos演示例子,IAR for MSP430默认的堆栈大小是80字节,编译可以通过,运行结果不确定性,调试过程会提示 the stack pointer for stack is outside the stack range ,堆栈溢出。那么,到底设置多大的堆栈够用且不浪费呢。 一、合理设置堆栈大小 首先,查看程序共需要多大的堆栈,生成map文件,方法如下: 图1 生成map文件 生成的map文件在项目目录下的/Debug/List,打开map文件在CALL GRAPH找到找到栈的最大使用量(我的理解是main主函数,用栈最多,所以
[单片机]
<font color='red'>IAR</font> MSP430设置合理堆栈大小
IAR测试STM8的PWM
IAR测试STM8的PWM 板子上的LED1接在了PD3上,而PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。当然板上的另外2个LED也可以用,LED2对应PD2/TIM3_CC1,LED3对应PD0/TIM3_CC2。下面通过电位器来调整LED1的亮度。 源程序: #i nclude iostm8s207sb.h void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3
[单片机]
IAR调试stm8单片机时延时函数被优化的问题
IAR优化等级选到最高,调用以下延时函数时会被编译器直接优化,无法达到延时的效果。 void delay_n_ms(u32 time) { u32 m = 0; u16 n = 0; for(;m time;m++) { for(n = 0;n 2720;n++)//16Mhz { ; } } } 在函数的变量前加volatile关键字后问题解决。 void delay_n_ms(u32 time) { volatile u32 m = 0; volatile u16 n = 0; for(;m time;m++) { for
[单片机]
IAR新建一个工程
1 安装好IAR For STM8软件。 2 在project菜单下新建一个工程 3 弹出的文本框中选择C文件 4 新建一个文件夹用于保存我们新建的工程,最好不要包含中文命名,保存后给工程命名。 5 保存后是这样的。 6 选择一个和当前单片机对应的版本,复制如下文件到你新建项目的目录下替换原来的man.c文件。 7 在项目中添加复制过来的文件 8 编译后报错的原因,需要添加头文件。 9 此时需要添加头文件。 10 对IAR做配置 11 有时候程序是对的但是结果不一样可能就是这里配置不一样 12 添加库函数头文件和库函数文件指定项目路径 以上三个图为指定库函数文件库函数头文件本项
[单片机]
<font color='red'>IAR</font>新建一个工程
使用IAR和BSL下载线烧录程序至单片机方法下载
一,使用两个软件:IAR(EW430)和MSP430BSL.exe 二,IAR软件用于编程和编译;BSL软件负责载入烧录。 三,在IAR中编程操作: IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。
[单片机]
IAR添加文件夹和头文件的方法
添加文件夹的方法: (1) 右键项目 (2)选择add (3)选择add group 然后添加文件夹的名字就可以了 (4)添加入文件夹以后可以在这个文件夹内添加源文件 添加头文件的方法 (1)右键工程 (2)选择option,选择c/c++ compler (3)选择preprocessor,点击下图的 ... 方框 点击click to add 去添加头文件的路径 注意这里可以用绝对路径,或者项目中定义的值作为头文件的路径
[单片机]
<font color='red'>IAR</font>添加文件夹和头文件的方法
Keil IAR - Cortex M3 调试问题及解决方法(3)
上次谈到由于stm32官方库和iar ew arm 的不断升级, 多出配置都发生了 变化, 1在使用 ewarm 6.30 升级stm32 stdlib 3.5 出现了这个错误 Error(Pe47) declaration is incompatible with __interwork__softfp unsigned long __get_PSP(void) , ”declaration “ 说明有文件中定义冲突。 查了一下,IAR自己带了CMSIS的库文件,而我们本地工程下也有CMSIS, 因此我们选择IAR自带的就没有问题了。 步骤如下: Please follow the followi
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved