老师:我刚刚试了在串口中断中添加一下语句 :
interrupt void UART_intrDispatch(void) //串口中断
{
Uint8 temp;
Uint8 i;
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断
asm(" NOP"); // Wait one cycle
asm(" BCLR INTM"); //开全局中断
IRQ_disable(UART_EVENT); //关闭串口中断
……串口处理程序
IRQ_enable(UART_EVENT); //打开串口中断
}
就是加了 CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断
asm(" NOP"); // Wait one cycle
asm(" BCLR INTM"); //开全局中断
我发现程序很容易死机,是不是我写的有问题?
user4117338:
我整个程序中有4个中断 (1)外部中断0 (2)定时器1中断 (3)uart接收中断 (4) uart_tx_dma 发送完成中断。
我外部中断0 每隔50ms响应一次(外部电平触发),定时器0每隔10ms响应一次自己计时,串口中断不停的接收数据。
现在我要保证数据进入 串口_isr时,若是定时器响应要能打断串口中断,先执行定时器1中断,等定时器1中断处理完成,再处理未处理完的串口_isr,
(1)关闭外部中断0,就响应(2)(3)两个中断, 在串口中断中添加以下语句–没有问题。
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断 asm(" NOP"); // Wait one cycle asm(" BCLR INTM"); //开全局中断
(2)我打开外部中断0,让外部中断0每隔50ms响应一次,还响应(2)(3)(4)中断 在串口中断中添加以下语句—–程序执行一会就会死机。
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断 asm(" NOP"); // Wait one cycle asm(" BCLR INTM"); //开全局中断
麻烦老师帮我好好的分析下原因。真的比较急切的需要解决这个问题。
user4117338:
回复 user4117338:
我是裸跑的,没有用到操作系统
Shine:
回复 user4117338:
请问死机具体是什么现象?是完全跑飞了还是还在自己代码中?
user4117338:
回复 Shine:
完全跑飞了,
我外部中断是每隔50ms响应一次,
再在串口中断中开启定时器1中断嵌套:
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断// CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 & 0x0010; //只允许定时器中断 asm(" NOP"); // Wait one cycle asm(" BCLR INTM"); //开全局中断
程序就很容易跑飞
若是关闭外部中断,在串口中断开启–定时器1中断嵌套就没有问题
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断// CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 & 0x0010; //只允许定时器中断asm(" NOP"); // Wait one cycleasm(" BCLR INTM"); //开全局中断
user4117338:
回复 user4117338:
老师 我在串口中加这几句开发定时器中断的–有没有问题啊
CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; //只允许定时器中断// CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 & 0x0010; //只允许定时器中断asm(" NOP"); // Wait one cycleasm(" BCLR INTM"); //开全局中断
Shine:
回复 user4117338:
IER你在程序初始化的时候就使能了吧?没必要在中断子程序中再打开,在中断子程序中把总中断打开就可以了。
另外,你代码里的中断比较多,试试加大stack, heap size。
user4117338:
回复 Shine:
我的cmd文件如附件1
cmd文件中 .stack > DARAM0 /* Primary system stack */ 这个我设置了
但是 heap size 这个没有设置
user4117338:
回复 user4117338:
老师 麻烦您帮我看下我这个cmd文件是否有问题 , heap size这个应该如何正确设置?