目录
前言
对 configParamInit(); /*初始化参数配置*/
进行理解
一、 configParamInit(); /*初始化参数配置*/
void configParamInit(void) /*²ÎÊýÅäÖóõʼ»¯*/
{
if(isInit) return;
lenth=sizeof(configParam);
lenth=lenth/4+(lenth%4 ? 1:0);
STMFLASH_Read(CONFIG_PARAM_ADDR, (u32 *)&configParam, lenth);
if(configParam.version == VERSION) /*°æ±¾ÕýÈ·*/
{
if(configParamCksum(&configParam) == configParam.cksum) /*УÑéÕýÈ·*/
{
printf("Version V%1.1f check [OK]\r\n", configParam.version / 10.0f);
isConfigParamOK = true;
} else
{
printf("Version check [FAIL]\r\n");
isConfigParamOK = false;
}
}
else /*°æ±¾¸üÐÂ*/
{
isConfigParamOK = false;
}
if(isConfigParamOK == false) /*ÅäÖòÎÊý´íÎó£¬Ð´ÈëĬÈϲÎÊý*/
{
memcpy((u8 *)&configParam, (u8 *)&configParamDefault, sizeof(configParam));
configParam.cksum = configParamCksum(&configParam); /*¼ÆËãУÑéÖµ*/
STMFLASH_Write(CONFIG_PARAM_ADDR,(u32 *)&configParam, lenth); /*дÈëstm32 flash*/
isConfigParamOK=true;
}
xSemaphore = xSemaphoreCreateBinary();
isInit=true;
}