|
我编的测试例程主文件如下:
void * test_function[][2]=
{
(void *)Counter, "Counter test ",/* 计数器测试 */
(void *)Test_Led, "LED test ",
(void *)Test_KeyBoard, "keyboard ",
(void *)Timer_Pwm,"Test PWM and pwm timer ",
(void *)Test_Rtc, "RTC test ",
(void *)Test_Adc, "ADC sampling test ",
(void *)Test_Printf,"Test Printf ",
0, 0
};
void Main(void)
{
U32 i;
__rt_lib_init();
rSYSCFG = SYSCFG_8KB;
#if (PLLON == 1)
ChangePllValue(PLL_M,PLL_P,PLL_S);
#endif
Port_Init();
Isr_Init();
Uart_Init(0,115200);
Delay(0); /* 校准延时时间 */
while(1)
{
i = 0;
Uart_Printf("\n\n\n Welcome to SW44B0 test! \n");
Uart_Printf(" Now,let's start. \n\n");
while(1)
{
Uart_Printf("%2d:%s",i+1,test_function[1]);
i++;
if((int)(test_function[0]) == 0)
{
Uart_Printf("\n");
break; /* 退出循环 */
}
if((i%4) == 0)
Uart_Printf("\n");
}
Uart_Printf("\nPlease select which peripheral you want to test:");
i = Uart_GetIntNum();
i--;
Uart_Printf("\n");
if((i < (sizeof(test_function)/) )
( (void (*)(void)) (test_function[0]) )();
}
}
当i=2~7时,即选择运行Test_Led以后六个测试函数时,程序可以正常运行。可是,当i = 1,即选择运行Counter函数时,总是出现DataAbort
exception即数据访问中止异常。我觉得很纳闷,counter测试例程和其它功能测试函数几乎一样,怎么它就会出现数据访问终止呢?
针对上述问题,我想进行单步调试,可是从CodeWarrior进入axd进行调试时,出现一个错误提示对话框如下:
The session file 'c:Documetns and Settings\Administrator\default-1-2-0-0.ses'could not be loaded
点确定后,打开axf文件,发现是乱码,请问这是什么问题?
各位朋友帮帮忙吧,谢谢了。 |
|