我正在 Linux 设备驱动程序 3 的示例中尝试 short.c
我的电脑有并行端口,在 Ubuntu 启动后,我可以看到这些:
cat /proc/ioports
0378-037a : parport0
037b-037f : parport0
outp 0x378 1
(outp is another example in LDD3 which write data to ports)
the LED on the port is ON.
然后我运行这些命令来删除模块
rmmod lp
rmmod parport_pc
cat /proc/ioports
(There is no module on 0378-037f any more.)
我再次运行它,但这次 LED 没有亮起。
outp 0x378 1
然后我安装 short.ko 并且 request_region() 成功。
cat /proc/ioports
0378-037f : short
cat /proc/devices
249 short
outp 0x378 1
the LED is not ON this time either.
我也试过这些,但结果相同(LED 不亮)
mknod /dev/short0 c 249 0
echo -n "a" > /dev/short0
“a”是 0x61,所以最后一位是 1。
为什么我有 I/O 区域却不能写出数据?
感谢您的回答。