
1、睡眠或者放弃CPU,这样做的后果是灾难性的,因为内核在进入中断之前会关闭进程调度,一旦睡眠或者放弃CPU,这时内核无法调度别的进程来执行,系统就会死掉。
2、尝试获得信号量,如果获得不到信号量,代码就会睡眠,会产生和上面相同的情况。
3、执行耗时的任务,中断处理应该尽可能快,因为内核要响应大量服务和请求,中断上下文占用CPU时间太长会严重影响系统功能。
4、访问用户空间的虚拟地址,因为中断上下文是和特定进程无关的,它是内核代表硬件运行在内核空间,所以在终端上下文无法访。
汇编语言:ORG 0000H 复位入口
SJMP START
ORG 0003H INT0中断入口
JNB P3.2, $ 低电平原地转移
RETI 高电平时结束中断
START:
SETB IT0 设为下降沿触发中断
MOV IE, #10000001B 开放外部中断0
SJMP $ 等待
END
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)