1501123lijing

导航

 

一.中断的概念

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

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

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

1.裸机中的中断处理

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

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

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

2.ucos中断服务程序

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

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

  

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

 

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

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

 

 

 

 

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

 

posted on 2019-03-06 15:56  1501123lijing  阅读(836)  评论(0)    收藏  举报