要定义一个标识符(变量/数组/函数名),100%的童鞋都没问题:
但如果要求定义到指定地址,相信有些童鞋就得蒙圈了。其实很简单,我们只需使用“_at_”将标识符定位在你想要的地址就ok了:unsigned char myvar;unsigned int myarray[16];
我有一个使用51单片机的项目,需要使用内置Flash模拟EEPROM来保存系统参数,其中使用了_at_来定义数组到Flash缓存地址和EEPROM的起始地址,从而通过访问数组来访问对应空间:unsigned char myvar _at_ 0xXXXXXXXX;unsigned int myarray[16] _at_ 0xXXXXXXXX;
需要注意的是,使用_at_定位标识符的前提是你对单片机/处理器的存储系统比较熟悉,否则,可能发生难以预料的事情,轻则编译不通过,程序运行出错,重则程序乱来,产品起火冒烟...难以想象~~
支持原创,转载时请注明出处,疯狂码者愿与你一起努力,共同成长,谢谢!
来源 ,疯狂码者