当前位置:首页 > 单片机 > 单片机
[导读]1.扩展关键字:用于控制数据和指针__eeprom用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放__tinyflash, __flash, __farflash, __hugeflash用于flash 存储空间, 控制数据存放,控制指针类型和存放__ext_io,

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 限制。
例:


#include__root__flashunsignedcharp@0x10=0x56;voidmain(void){}


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



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