嘿,有人可以告诉我这段代码应该做什么,或者甚至允许这种语法在avr-gcc下编译?它是从NanoVM源代码中获取的代码,为avr atmega128rfa1编译它.
//文件本身的缓冲区在eeprom中
ifdef NVM_USE_FLASH_PROGRAM
static u08_t nvmfile[CODESIZE] PROGMEM =
#include "nvmdefault.h"
#else
static u08_t EEPROM nvmfile[CODESIZE] =
#include "nvmdefault.h"
#endif
Run Code Online (Sandbox Code Playgroud)
注意我没有用-DNVM_USE_FLASH_PROGRAM编译它
如果nvmdefault.h包含一个数组初始化程序,那么这段代码应该编译得很好,如下所示:
nvmdefault.h
{0x01, 0x02, 0x03, etc...};
Run Code Online (Sandbox Code Playgroud)
至于它究竟做了什么,你必须看看源代码是否确定,但看起来它正在将该数组分配到Flash或EEPROM内存上,同样,也许有一个很好的理由来编写它,例如数组由另一个程序或脚本生成.
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |