arm嵌入式问题关于中断的

arm嵌入式问题关于中断的,第1张

static inline void __enable_interrupt(void) { __asm__ volatile ("cpsie i"); }

static inline void __disable_interrupt(void) { __asm__ volatile ("cpsid i"); }

我也为这个问题困扰了好久,一直不能解决。

我是想在串口接收中断中嵌套定时中断,串口接收到一定长度的数据后,经过处理,由定时处理函数发送出去。但结果是:定时不起作用。很郁闷。

不知道你现在有没有解决?可否赐教一二?我的QQ是353440104,多谢

这个有几个原因,请参考下面分析:

1,ucos

是多任务 *** 作系统,当系统正常运行时,必须建立一个以上的任务,否则系统处于死机崩溃状态,程序运行出现异常

2,你的系统时钟中断程序有问题,应该关中断,调用过系统时钟后再开中断,否则系统时钟异常导致程序运行异常,具体程序如下:

void

Tmr_TickISR_Handler

(void)

{

T0IR

=

0xFF;

//清零中断标志位

OSIntEnter(

);

//

关中断,必须有

OSTimeTick();

OSIntExit();

//临界代码完成,与关中断成对使用

}

3,看你上面的程序里面,你想使用定时器1中断来处理一些信息,而程序无法运行到其中,可能的原因有:1)你的定时器1初始化异常。2)你系统里面的中断使能关掉了。其实多任务的时候,你完全可以将它分配到一个任务里处理,这样既可以充分利用多任务,又不会因为中断没处理好而出现异常,如果你想要求实时性较高,那你可以将这个人物的优先级设为最高。

4,UCOS初始化异常,UCOS系统初始化有固定的顺序以及模式,颠倒了就会出现异常。

5,系统时钟tick一般建议为10hz-50hz,太高的话在你初始化的时候,还没创建任务的时候都已经进行任务切换了而导致ucos崩溃。

以上就是关于arm嵌入式问题关于中断的全部的内容,包括:arm嵌入式问题关于中断的、请问ARM9(S3C2440)怎样中断嵌套、ARM7在UCOS下如何使用中断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9511681.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存