在给的flash的例程中:
void WriteToFlash(unsigned long *pArray, unsigned long ulStartAddress, unsigned int uiSize){ unsigned int uiPollFEESTA = 0; vola
tile unsigned long *flashAddress; unsigned int i = 0; flashAddress = ( unsigned long *)ulStartAddress; FeeWrEn(1); uiPollFEESTA = FeeSta(); // Read Status to ensure it is clear for (i = 0; i < uiSize; i = i+4) { uiPollFEESTA = 0; *flashAddress++ = *pArray++; do {uiPollFEESTA = FeeSta();} while((uiPollFEESTA FEESTA_CMDBUSY) == FEESTA_CMDBUSY); } FeeWrEn(0); // disable a write to Flash memory}
这里
flashAddress++每次执行后,flash中的地址都加4,每次写入的数据都占四个字节。
但是若将
flashAddress定义为uchar后,又无法将正确的地址给它,因为例如地址0x1f000,都超过它的大小,
那么ADUCM360是否能够以每字节为单位存储数据呢?