最近在写单片机, 然后在参考其它开源项目的时候, 发现了一个不太明白的写法:
#define EEMEM attribute ((section (".eeprom")))
uchar a EEMEM;
uchar b EEMEM;
eeprom_write_byte(&a, 0x42);
eeprom_write_byte(&b, 0xff);
这样写的意义是什么? 或者说这段程序是如何运作的? 我之前一直是手动指定 EEprom 地址.
环境: gcc + avr
感谢.
1
epicnoob 2018-03-18 18:51:24 +08:00 2
不是标准语法,这个单片机编译器自定义的。应该是将这个变量定义在名为"eeprom"内存区域内,肯定还有另一个文件指明"eeprom"的内存地址。
|
2
jackyzy823 2018-03-18 18:52:47 +08:00 via Android 1
gcc 拓展语法 指定编译到.eeprom 段
可以阅读 程序员的自我修养进一步了解 |
3
lrxiao 2018-03-19 02:34:34 +08:00 1
|