如题:MPLAB X IDE下XC16编译器产生的问题:出现_AddressError中断
具体程序是这样的:
int16_t main(void) {
DateTime *DateTime_run; //实时日期时间
Day_TimeInterval *Day_TimeInterval_run; //一日的时段参数
Single_Circl_parameter *TimeInterval_run; //一个时段的全部参数变量
Phase_Time *Phase_Time_run;
phaseCode_Table *phaseCode_Table_edit;
- - -
//模拟读Flash初始这些参数
DateTime_run->Type_day = 0;
DateTime_run->WhatDay = 5;
DateTime_run->hour = 11;
DateTime_run->minute = 12;
DateTime_run->second = 59;
DateTime_run->year = 13;
DateTime_run->month = 2;
DateTime_run->date = 1;
TimeInterval_run->Num_Phase = 6;
for (i = 0; i < 6; i++)
TimeInterval_run->phaseTime[i] = 30;
TimeInterval_run->validityPhase = 5;
Day_TimeInterval_run->Num_TimeInterval = 5;
Day_TimeInterval_run->validityTimeInterval = 7;
for (i = 0; i <7 ; i++) { //Day_TimeInterval_run->validityTimeInterval
Day_TimeInterval_run->TI_Time[i][0] = 1;
Day_TimeInterval_run->TI_Time[i][1] = 30;
}
然后全速运行,然后就是出错。程序停留在
void __attribute__((interrupt,no_auto_psv)) _AddressError(void)
{
INTCON1bits.ADDRERR = 0; /* Clear the trap flag */
-> while (1);
}
我实在不知道它出错的原因,请教高手/大侠了。
另外,单步走过模拟读Flash这段程序后,再全速运行时,是正常的。
|