|
屏幕型号:T5L DMG10600t070_A5WTC
引论论坛帖子,http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=1715&highlight=%E5%AD%98%E5%82%A8换了结构体,在存储函数后写了一句显示存储完成的语句,发现该行代码不执行,怀疑存储出现死循环问题,同时执行存储函数后CAN通讯没了。
代码跟Demo对比了找不到差异,想请教下如何分析,不知如何分析,关键代码如下。
typedef struct{
u32 Parm_VehSpd;
u32 Parm_PlantSpace;
u32 Parm_Width;
u32 Parm_PanNum;
u32 Parm_SdNumSet;
u32 Parm_SdStrOrder;
u32 flag;
}SYS_PARAMS;
xdata SYS_PARAMS sys_params;
static void StoreSetVars()
{
sys_params.Parm_VehSpd = (u32)FromGui_Disp_VehSpd;
sys_params.Parm_PlantSpace = (u32)FromGui_Disp_Sp;
sys_params.Parm_Width = (u32)FromGui_Disp_Width;
sys_params.Parm_PanNum= (u32)FromGui_Disp_Num;
sys_params.Parm_SdNumSet= (u16)FromGui_Disp_Set;
sys_params.Parm_SdStrOrder= (u16)FromGui_Disp_Order;
sys_params.flag = SYS_PARAMS_FLAG_OK;
sys_params_save();
}
void sys_params_save()
{
norflash_write(SYS_PARAMS_ADDR,(u8*)&sys_params,sizeof(SYS_PARAMS)/2);
}
void norflash_write(u32 addr,u8* buff,u16 len)
{
sys_write_vp(CACHE_ADDR,buff,len);
norflash_cmd[0] = NOR_FLASH_WRITE;
norflash_cmd[1] = (addr>>16)&0xff;
norflash_cmd[2] = (addr>>8)&0xff;
norflash_cmd[3] = addr&0xff;
norflash_cmd[4] = (CACHE_ADDR>>8)&0xff;
norflash_cmd[5] = CACHE_ADDR&0xff;
norflash_cmd[6] = (len>>8)&0xff;
norflash_cmd[7] = len&0xff;
sys_write_vp(NOR_FLASH_ADDR,norflash_cmd,4);
//3.µÈ´ý²Ù×÷Íê³É
while(1)
{
sys_read_vp(NOR_FLASH_ADDR,norflash_cmd,2);
if(norflash_cmd[0]==0)
break;
sys_delay_about_ms(1);
}
}
|
|