ucos中的中断管理

一.中断的概念

中断是一种硬件机制,用于处理异步事件。中断的实时性比轮询要好,通过中断,微控制器可以在异常发生的时候立刻进行处理,而不需要不断轮询事件是否发生。

CM3支持中断嵌套,使得高优先级异常可以打断低优先级的异常。

二.中断服务程序中的数据处理

1.裸机中的中断处理

1)对于中断请求较少的程序来说,直接在中断中进行数据处理是一种简洁的方式(参见正点原子的教学例程)。

2)在实际的工程应用中,中断资源比较宝贵,通常做法是在中断中打一个标记,在主循环中轮询此标志位,发现置位标记后,马上清空,开始做读数据,处理等一系列操作。应避免在ISR中处理复杂数据,让中断能够快速处理完毕。

3)DMA,我好像都没有用过这个功能(后期在讨论)

2.ucos中断服务程序

看起来很简单,与裸机相比只增加了两行代码:

OSIntEnter();  //通知UCOS进入中断处理
/*中断服务程序*/
OSIntExit(); //退出中断处理

  

这两个函数暂时不去关注他的实现。

3.多中断优先级的处理器

处理器的中断优先级别永远高于系统任务的优先级别。

ucos中的中断管理

对于CM3内核的芯片来说,有三个不可编程的优先级,系统内核无法参与。

ucos中的中断管理

上一篇:hdu1251 统计难题


下一篇:ISO/OSI七层网络参考模型、TCP/IP四层网络模型和教学五层网络模型