int main(void) { uint8 err; uint32 i; uint8 j; uint8 *kk; uint32 Sramdata; // volatile uint8 kk[256]; //用数组不知道怎么处理
PINSEL0 = 0x00000000; IO0DIR = BEEP; IO0SET = BEEP;
IAP_Entry = (void(*)())IAP_ENTER_ADR; // 初始化函数指针IAP_Entry kk=( uint8 *)Sramdata; // Sramdata = &kk[0]; //这样取首址编译不能通过 for(j=0; j<0xff; j++) {kk[j]=j; } ReadParID(); // 读器件ID BootCodeID(); // 读Boot版本号 SelSector(1,1); // 选择扇区1 EraseSector(1,1); // 擦除扇区1 BlankCHK(1,1) ; // 查空扇区1 SelSector(1,1); // 选择扇区1 RamToFlash(0x00001000,Sramdata, 256); // 写数据到扇区1 err = Compare(0x00001000,Sramdata, 256); // 比较数据 if(err == CMD_SUCCESS) { /* 成功,蜂鸣一声 */ IO0CLR = BEEP; for (i=0; i<0x3FFFFF; i++); IO0SET = BEEP; } else { /* 失败,一直蜂鸣 */ IO0CLR = BEEP; } while(1); return(0); }
指针有覆盖其它数据的危险,数组的首地址又取不出来。请教大虾。
|