Ch573F?寫?地址 4?字節(jié)對齊,讀取時也要4字節(jié)的整數(shù)嗎??用代碼測試了下確實(shí)是要,讀取時起始地址要為4字節(jié)倍數(shù)否則會導(dǎo)致復(fù)位。我太難了。昨天是發(fā)現(xiàn)庫的頭文件pwmx 寄存器地址錯誤。唉。有沒有DATA?Flash?讀取的內(nèi)部代碼,把非4字節(jié)倍數(shù)的地址轉(zhuǎn)成合法地址后返回所需地址的數(shù)據(jù)?
codeflash讀取可以使用指針的方式直接讀,使用我門封好的函數(shù)讀是需要四字節(jié)對齊的,
dataflash的讀取是不用四字節(jié)對齊的。
?flash_adder = Sys_Run.Read_Add[1];
? ? ? ? if(flash_adder%4!=0)? //4字節(jié)讀取地址湊整
? ? ? ? {
? ? ? ? ? ? while(flash_adder%4!=0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? flash_adder--;
? ? ? ? ? ? ? ? s++;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? flash_save_read(0,CMD_FLASH_READ,flash_adder,readbuff,Sys_Run.Sum_Add[1]+s);
//? ? ? ? PRINT("s = %d \r\n", s);
? ? ? ? ?for(i=0;i
? ? ? ? ?{
? ? ? ? ? ? ?readbuff[i] = readbuff[i+s];
//? ? ? ? ? ? ?PRINT("%02x ", readbuff[i]);
? ? ? ? ?}
? ? ? ? ?Sys_Run.timebuffv[n]? ?=? ?readbuff[0]<<8|readbuff[1];? ? ? ?//時間數(shù)值
? ? ? ? ?Sys_Run.timebuffT[n]? ?=? ?readbuff[2];
用了死方法實(shí)現(xiàn)了。有沒有更優(yōu)化的方法?