Ch573F 写 地址 4 字节对齐,读取时也要4字节的整数吗? 用代码测试了下确实是要,读取时起始地址要为4字节倍数否则会导致复位。我太难了。昨天是发现库的头文件pwmx 寄存器地址错误。唉。有没有DATA Flash 读取的内部代码,把非4字节倍数的地址转成合法地址后返回所需地址的数据?
codeflash读取可以使用指针的方式直接读,使用我门封好的函数读是需要四字节对齐的,
dataflash的读取是不用四字节对齐的。
flash_adder = Sys_Run.Read_Add[1];
if(flash_adder%4!=0) //4字节读取地址凑整
{
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]; //时间数值
Sys_Run.timebuffT[n] = readbuff[2];
用了死方法实现了。有没有更优化的方法?