共2条
1/1 1 跳转至页
,VXWORKS,NUCLEUS,keil,for,arm,01a,ccd,13581980230, 44B0程序跑飞问题,出现ENTER DEBUGUNF。高
问
440程序调试成功,烧写进去ARM开发板,开发板装于一机器上,当机器未开动保持静止状态时,程序运行正常,传感器控制机构工作正常。但当机器发动机一开动,程序进行了不到一分钟,原本向上位机发送的反馈信号,立刻出现ENTER DEBUGUNF,ENTER DEBUGUNF,ENTER DEBUGUNF等,程序瞬时中断。而当机器一关闭,开发板重新复位上电,程序正常工作。
请问一下,这是何原因呢,谢谢各位! 答 1: 检查电源电源在瞬间提供不了这么大的电流,电压下降,于是复位芯片输出复位 答 2: 请问一下如何解决这个问题呢?是不是从电源方面入手?我用的电源只有两个12V的车用蓄电池,可供100A电流!电路板需要的是9V 600ma的电源,配套电源就是一个交流220V转9V的变压器。我现在用12V,采用7809进行稳压,我查了数据手册,标准电流为500ma,我想问下,是否有电流更大的稳压芯片么?能否告之,谢谢! 答 3: ENTER DEBUGUNF是什么ENTER DEBUGUNF是什么?是不是发动机产生干扰,引起位处理的中断,或者是对存储器地址pin脚有影响,访问存储器失败。 答 4: 应该是未定义中断调试! 答 5: 我给点意见供参考应该是发动机的干扰引起的吧,信号有没有做隔离?看看地线是怎么处理的? 答 6: ENTER DEBUGUNF程序有时候不单出现ENTER DEBUGUNF,其他模式的比如Enter DebugDABORT、Enter DebugSWI都有出现过,程序瞬时死了。
所有这些错误,都是在机器发动机开打之后产生。电源问题目前应该可以说解决了,但是问题是,发动机打开之后车体震动厉害。目前我认为可能两种情况可能引起这个问题:
1,发动机干扰
2,车体震动导致接线接触不良引起
经过几番测试。现象如下:
控制盒放至驾驶员座位,简单用胶布粘贴,工作尚算稳定
控制盒直接拿开车体,放置车边桌上,工作尚算稳定
但,控制盒放置车上,用海绵垫子减震,工作不稳定,偶尔开始情况可以,但工作不了10分钟,仍然出现未知错误,程序跑飞,甚至紊乱,输出不正常。在发动机工作条件下,重新复位,亦不正常。但发动机关机后重新复位工作正常。
如何解决这个问题?谢谢,唉,情况棘手,不知道如何是好。工作不稳定,没办法做试验 答 7: 输出异常void ARMInitInterrupts(void)
{
// Non-vectored,IRQ disable,FIQ disable
rINTCON = 0x0 ;
// All=IRQ mode
rINTMOD = 0x0 ;
// All interrupt is masked.
rINTMSK = BIT_GLOBAL;
//set interrupt vector routine
// pISR_RESET //reserved
pISR_UNDEF = (unsigned) DebugUNDEF;
pISR_SWI = (unsigned) DebugSWI;
pISR_PABORT = (unsigned) DebugPABORT;
pISR_DABORT = (unsigned) DebugDABORT;
// pISR_RESERVED = (unsigned) BreakPoint; //not used
// pISR_IRQ = (unsigned) 0; //reserved
pISR_FIQ = (unsigned) DebugFIQ;
pISR_ADC= (unsigned) BreakPoint;
pISR_RTC= (unsigned) BreakPoint;
pISR_UTXD1= (unsigned) BreakPoint;
pISR_UTXD0= (unsigned) BreakPoint;
pISR_SIO= (unsigned) BreakPoint;
pISR_IIC= (unsigned) BreakPoint;
pISR_URXD1= (unsigned) BreakPoint;
pISR_URXD0= (unsigned) OSURXD0ISR;
pISR_TIMER5= (unsigned) BreakPoint;
pISR_TIMER4= (unsigned) OSTIMER4ISR;
pISR_TIMER3= (unsigned) BreakPoint;
pISR_TIMER2= (unsigned) BreakPoint;
pISR_TIMER1= (unsigned) BreakPoint;
pISR_TIMER0= (unsigned) BreakPoint;
pISR_UERR01= (unsigned) BreakPoint;
pISR_WDT= (unsigned) BreakPoint;
pISR_BDMA1= (unsigned) BreakPoint;
pISR_BDMA0= (unsigned) BreakPoint;
pISR_ZDMA1= (unsigned) BreakPoint;
pISR_ZDMA0= (unsigned) BreakPoint;
pISR_TICK= (unsigned) BreakPoint;
pISR_EINT4567= (unsigned) BreakPoint;
pISR_EINT3= (unsigned) BreakPoint;
pISR_EINT2= (unsigned) OSEINT2ISR;
pISR_EINT1= (unsigned) BreakPoint;
pISR_EINT0= (unsigned) BreakPoint;
pISR_TIMER0= (unsigned) OSTickISR;
}
void DebugUNDEF(void)
{
Uart_Printf("Enter DebugUNDEF");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugSWI(void)
{
Uart_Printf("Enter DebugSWI");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugPABORT(void)
{
Uart_Printf("Enter DebugPABORT");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugDABORT(void)
{
Uart_Printf("Enter DebugDABORT");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugFIQ(void)
{
Uart_Printf("Enter DebugFIQ");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
至于有人不知道为什么会出现这些莫明的字符串,程序在此。
请问一下,这是何原因呢,谢谢各位! 答 1: 检查电源电源在瞬间提供不了这么大的电流,电压下降,于是复位芯片输出复位 答 2: 请问一下如何解决这个问题呢?是不是从电源方面入手?我用的电源只有两个12V的车用蓄电池,可供100A电流!电路板需要的是9V 600ma的电源,配套电源就是一个交流220V转9V的变压器。我现在用12V,采用7809进行稳压,我查了数据手册,标准电流为500ma,我想问下,是否有电流更大的稳压芯片么?能否告之,谢谢! 答 3: ENTER DEBUGUNF是什么ENTER DEBUGUNF是什么?是不是发动机产生干扰,引起位处理的中断,或者是对存储器地址pin脚有影响,访问存储器失败。 答 4: 应该是未定义中断调试! 答 5: 我给点意见供参考应该是发动机的干扰引起的吧,信号有没有做隔离?看看地线是怎么处理的? 答 6: ENTER DEBUGUNF程序有时候不单出现ENTER DEBUGUNF,其他模式的比如Enter DebugDABORT、Enter DebugSWI都有出现过,程序瞬时死了。
所有这些错误,都是在机器发动机开打之后产生。电源问题目前应该可以说解决了,但是问题是,发动机打开之后车体震动厉害。目前我认为可能两种情况可能引起这个问题:
1,发动机干扰
2,车体震动导致接线接触不良引起
经过几番测试。现象如下:
控制盒放至驾驶员座位,简单用胶布粘贴,工作尚算稳定
控制盒直接拿开车体,放置车边桌上,工作尚算稳定
但,控制盒放置车上,用海绵垫子减震,工作不稳定,偶尔开始情况可以,但工作不了10分钟,仍然出现未知错误,程序跑飞,甚至紊乱,输出不正常。在发动机工作条件下,重新复位,亦不正常。但发动机关机后重新复位工作正常。
如何解决这个问题?谢谢,唉,情况棘手,不知道如何是好。工作不稳定,没办法做试验 答 7: 输出异常void ARMInitInterrupts(void)
{
// Non-vectored,IRQ disable,FIQ disable
rINTCON = 0x0 ;
// All=IRQ mode
rINTMOD = 0x0 ;
// All interrupt is masked.
rINTMSK = BIT_GLOBAL;
//set interrupt vector routine
// pISR_RESET //reserved
pISR_UNDEF = (unsigned) DebugUNDEF;
pISR_SWI = (unsigned) DebugSWI;
pISR_PABORT = (unsigned) DebugPABORT;
pISR_DABORT = (unsigned) DebugDABORT;
// pISR_RESERVED = (unsigned) BreakPoint; //not used
// pISR_IRQ = (unsigned) 0; //reserved
pISR_FIQ = (unsigned) DebugFIQ;
pISR_ADC= (unsigned) BreakPoint;
pISR_RTC= (unsigned) BreakPoint;
pISR_UTXD1= (unsigned) BreakPoint;
pISR_UTXD0= (unsigned) BreakPoint;
pISR_SIO= (unsigned) BreakPoint;
pISR_IIC= (unsigned) BreakPoint;
pISR_URXD1= (unsigned) BreakPoint;
pISR_URXD0= (unsigned) OSURXD0ISR;
pISR_TIMER5= (unsigned) BreakPoint;
pISR_TIMER4= (unsigned) OSTIMER4ISR;
pISR_TIMER3= (unsigned) BreakPoint;
pISR_TIMER2= (unsigned) BreakPoint;
pISR_TIMER1= (unsigned) BreakPoint;
pISR_TIMER0= (unsigned) BreakPoint;
pISR_UERR01= (unsigned) BreakPoint;
pISR_WDT= (unsigned) BreakPoint;
pISR_BDMA1= (unsigned) BreakPoint;
pISR_BDMA0= (unsigned) BreakPoint;
pISR_ZDMA1= (unsigned) BreakPoint;
pISR_ZDMA0= (unsigned) BreakPoint;
pISR_TICK= (unsigned) BreakPoint;
pISR_EINT4567= (unsigned) BreakPoint;
pISR_EINT3= (unsigned) BreakPoint;
pISR_EINT2= (unsigned) OSEINT2ISR;
pISR_EINT1= (unsigned) BreakPoint;
pISR_EINT0= (unsigned) BreakPoint;
pISR_TIMER0= (unsigned) OSTickISR;
}
void DebugUNDEF(void)
{
Uart_Printf("Enter DebugUNDEF");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugSWI(void)
{
Uart_Printf("Enter DebugSWI");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugPABORT(void)
{
Uart_Printf("Enter DebugPABORT");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugDABORT(void)
{
Uart_Printf("Enter DebugDABORT");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
//*******************************************************************************************************
void DebugFIQ(void)
{
Uart_Printf("Enter DebugFIQ");
while(1)
{
Led_Set( 0xf ) ; Delay_Task( 1000 ) ;
Led_Set( 0x0 ) ; Delay_Task( 1000 ) ;
}
}
至于有人不知道为什么会出现这些莫明的字符串,程序在此。
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
我要赚赏金
