
1.CPU、MPU、MCU、SoC、SOPC 的联系与区别2. 中断能不能睡眠为什么1️⃣一般说中断上下文中不能睡眠这个中断是指硬件事件发生触发 CPU 停止当前活动转而去处理硬件请求。2️⃣根据硬件请求响应处理逻辑的实时紧要与否将整个中断处理过程分为上半部和下半部。上半部也就是所谓的硬中断处理逻辑其要求 cpu 在收到硬件请求后必须马上处理的事情比如网卡收到数据包了把数据包从网卡缓存拷贝到主存可以由 DMA 完成但寄存器的修改以及资源设定还是要由 cpu 去做的逻辑就需要 cpu 立即去做不做的话网络新来的数据包就可能丢失。所以这些紧要操作逻辑为硬中断处理。3️⃣下半部有很多种机制其中就包括软中断还有 tasklet, workqueue 等软中断只是其中的一种由于历史的原因有时候是混淆称呼下半部和软中断的。4️⃣而可以看到软中断逻辑不属于任何进程所以才不能睡眠因为一旦睡眠cpu 切换出去就切不回来了。简单说就是唤醒函数针对进程而言的下半部的中断不属于进程所以无法被唤醒。3.中断的响应执行流程是什么cpu 接受中断 - 保存中断上下文跳转到中断处理历程 - 执行中断上半部 - 执行中断下半部 - 恢复中断上下文。写一个中断服务需要注意哪些如果中断产生之后要做比较多的事情你是怎么做的1️⃣快进快出在中断服务函数里尽量快速采集信息。2️⃣中断中不能有阻塞操作。3️⃣中断服务函数注意返回值使用操作系统定义的宏而不是自己定义的。4️⃣做的事情较多将这些任务放在后半段 tasklet 处理。