共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 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 |