i want to save some values to flash but my code crashes here is the code:
#define PARAMETERSNUMBER 51
static const ascii * FLH_HANDLE = “handle”;
ascii *pin;
ascii *serverApn;
ascii *userApn;
ascii *passApn;
ascii *parameters[PARAMETERSNUMBER];
void chooseCommand(ascii *tempData,u32 count,adl_atCmdPreParser_t *paras){
switch ( count ) {
case PARAM_PIN:{
pin=tempData;
parameters[PARAM_PIN]=pin;
}
break;
case PARAM_SERVER_APN:{
serverApn=tempData;
parameters[PARAM_SERVER_APN]=serverApn;
}
break;
case PARAM_USER_APN:{
userApn=tempData;
parameters[PARAM_USER_APN]=userApn;
}
break;
case PARAM_PASSWORD_APN:{
passApn=tempData;
parameters[PARAM_PASSWORD_APN]=passApn;
}
break;
default:
break;
}
}
void storeToFlash(){
s8 rsp=adl_flhSubscribe ( FLH_HANDLE, PARAMETERSNUMBER);
s16 index;
if (rsp==OK) {
TRACE ((TRACE_LEVEL_FCT,“OK FLASH HANDLE”));
}
else{
TRACE ((TRACE_LEVEL_FCT,“ERR FLASH HANDLE %d”,rsp));
}
for (index=0;index<PARAMETERSNUMBER;index++){
TRACE((TRACE_LEVEL_FCT,“storing %s”,parameters[index]));
if (parameters[index]!=NULL){
rsp=adl_flhWrite(FLH_HANDLE,index,wm_strlen(parameters[index]),parameters[index]);
if (rsp==OK){
TRACE ((TRACE_LEVEL_FCT,“OK FLASH WRITE”));
}
else{
TRACE ((TRACE_LEVEL_FCT,“ERR FLASH WRITE”));
}
}
}
for (index=0;index<PARAMETERSNUMBER;index++){
s32 length = adl_flhExist ( FLH_HANDLE, index );
ascii * ParamStr;
rsp=adl_flhRead(FLH_HANDLE,index,length,ParamStr);
TRACE((TRACE_LEVEL_FCT,“restored %s”,ParamStr));
if (rsp==OK){
TRACE ((TRACE_LEVEL_FCT,“OK FLASH READ”));
}
else{
TRACE ((TRACE_LEVEL_FCT,“ERR FLASH READ”));
}
}
}
FUNC void tokeniseWscript(adl_atCmdPreParser_t *paras,ascii separator){
u32 count=-1;
ascii *data;
ascii *tempData;
data=paras->StrData;
TRACE((TRACE_LEVEL_FCT,“Started parsing”));
tempData=wm_strtok(data+11,",");
while (tempData!=NULL){
count++;
chooseCommand(tempData,count,paras);
tempData=wm_strtok(NULL,",");
}
TRACE((TRACE_LEVEL_FCT,“Ended parsing”));
storeToFlash();
}