新闻  |   论坛  |   博客  |   在线研讨会
迅为STM32MP157开发板中断下文之tasklet
afsa5f4da5 | 2023-03-28 10:08:20    阅读:125   发布文章

中断的上下文与进程上下文并没有什么瓜葛,当执行一个中断处理函数时,内核处于中断上下文。由于中断相当于打断了当前执行的程序,而且中断也没有后备的进程,所以中断上下文不可以睡眠(注意某些函数会睡眠),中断处理也必须做到迅捷,有一定的时限要求。中断处理程序存在希望中断程序运行的尽量快以及希望中断处理程序完成的工作量多这一对矛盾。因此我们一般将中断分为上下两个部分,分为上半部,下半部。上半部完成有严格时限的工作(必须),例如回复硬件等,这些工作都是在禁止其他中断情况下进行的。能够延后执行的都放在下半部进行。上半部只能通过中断处理程序实现,下半部的实现目前有 3 种实现方式,分别为:1、软中断、2、tasklet 3、工作队列(work queues)我们主要讲 tasklet。调用 tasklet 以后,tasklet 绑定的函数并不会立马执行,而是有中断以后,经过一个很短的不确定时间在来执行,如下图所示:


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客