我正在Intel Atom处理器上编写一个LinuxV3.2内核模块(x86_64,2核)。我想禁用一个特定的IRQ号,但是在Linux上这样做有困难。
我是双引导MS-DOS,通过直接与8259 PIC芯片通信,我可以很容易地禁用英特尔语法x86程序集中的中断:
CLI ; disable all interrupts
MOV DX, 0x21 ; set 8259 ioport address
IN AL, DX ; store current interrupt mask in AL
AND AL, 0xDF ; m
假设有一个端口映射的I/O设备,它在IRQ线路上任意生成中断。设备的挂起中断可以通过对特定寄存器的单个outb调用来清除。
此外,假设下面的中断处理程序通过request_irq分配给相关的IRQ行
irqreturn_t handler(int irq, void *data)
{
/* clear pending IRQ on device */
outb(0, CLEAR_IRQ_REGISTER_ADDR);
/* device may generate another IRQ at this point,
* but
我的相机的LED是不关机,即使是当过程完成。我只是创建了一个函数来捕捉图像,然后相机必须关闭,但这是不可能的。
我甚至尝试过编写.release()函数和.VideoCaptureRelease()函数,但都徒劳无功。
我使用的Python版本是3.6.9,在Linux上(Ubuntu18.04),在PyCharm IDE 19.3.2上。在所有openCV版本中,最重要的是4.1.2.3。
openCV 4.1.0.25!中没有出现问题
无论如何,在OpenCV的最新版本中,在使用相机之后,LED就会永远开着。下面是我的小任务代码:
from cv2 import *
import os