共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |