在线时间18 小时
UID122846
注册时间2008-8-25
NXP金币0
该用户从未签到
中级会员
- 积分
- 385
- 最后登录
- 2020-8-7
|
楼主 |
发表于 2010-5-12 21:42:43
|
显示全部楼层
RE:问题求助。
问题已经找到了,是因为我在调试版本下开了MQX的任务所用的看门狗,自己加了一个看门狗溢出服务程序,导致在下一个断点停下来后看门狗溢出了。
if ( _int_install_isr(MCF5225_INT_SWT, isrINT_SCM_SWTI, NULL) == NULL)
{
return FALSE;
}
_mcf5225_int_init(MCF5225_INT_SWT, 7, 3, TRUE);
但是奇怪的是我在服务程序里加的软件复位指令却没有起作用(溢出后可以进入服务程序),程序可以继续运行,但后面的断点却停不下来。
void isrINT_SCM_SWTI(pointer param)
{
MCF_SCM_CWCR |= MCF_SCM_CWCR_CWTAVAL;
MCF_SCM_CWCR |= MCF_SCM_CWCR_CWTIF;
MCF_RCM_RCR |=MCF_RCM_RCR_SOFTRST;
}
MCF_RCM_RCR |=MCF_RCM_RCR_SOFTRST;这个软件复位指令是没有错的,单独调用没问题。
另外,我的程序可以在CW中选择Int Flash Release和Int Flash Debug两种编译模式(其实也就是编译配置不同),我在程序里是否可以识别这两种模式?如果能识别我就可以在Int Flash Debug调试时方便地使某些程序不纳入编译。现在我是定义了一个常量来识别,但每次编译运行版本时要去改一下,感觉比较笨。 |
|