当前位置: 技术问答>linux和unix
读<<linux设备驱动程序〉〉,求助!!!
来源: 互联网 发布时间:2015-11-02
本文导语: 学到了"硬件管理" 和 "中断处理" 1.运行short模块时发现根本不行,我先是在VMware上跑linux,后来又转到了真实的linux操作系统下也不行,买了发光的LED连接了任何的并口针脚,然后装载了short.o,然后按照书上向设备...
学到了"硬件管理" 和 "中断处理"
1.运行short模块时发现根本不行,我先是在VMware上跑linux,后来又转到了真实的linux操作系统下也不行,买了发光的LED连接了任何的并口针脚,然后装载了short.o,然后按照书上向设备连续写字节,可就是不见LED发光。
2.书上说连接9,10两个接口就可以使系统产生一次中断,然后我用下面的代码来测试可用的irq,可是就是得出的irq始终等于0,书上说这种情况是设备没有产生中断。我用的是LED连接的9,10引脚,就是不产生中断
void doProbe(void){
unsigned long short_base = 0x378;
int count = 0;
int short_irq = -1;
do{
unsigned long mask;
mask = probe_irq_on();
outb_p(0x10,short_base+2);
outb_p(0x00,short_base);
outb_p(0xff,short_base);
outb_p(0x00,short_base+2);
udelay(5);
short_irq = probe_irq_off(mask);
printk("********* %dn",short_irq);
}while(short_irq
* -------> 我连接的就是他俩,可是没有产生中断.
---〉 * ->
*
*
*
*
*
*
怎么办???帮帮我!!~~~~~
1.运行short模块时发现根本不行,我先是在VMware上跑linux,后来又转到了真实的linux操作系统下也不行,买了发光的LED连接了任何的并口针脚,然后装载了short.o,然后按照书上向设备连续写字节,可就是不见LED发光。
2.书上说连接9,10两个接口就可以使系统产生一次中断,然后我用下面的代码来测试可用的irq,可是就是得出的irq始终等于0,书上说这种情况是设备没有产生中断。我用的是LED连接的9,10引脚,就是不产生中断
void doProbe(void){
unsigned long short_base = 0x378;
int count = 0;
int short_irq = -1;
do{
unsigned long mask;
mask = probe_irq_on();
outb_p(0x10,short_base+2);
outb_p(0x00,short_base);
outb_p(0xff,short_base);
outb_p(0x00,short_base+2);
udelay(5);
short_irq = probe_irq_off(mask);
printk("********* %dn",short_irq);
}while(short_irq
* -------> 我连接的就是他俩,可是没有产生中断.
---〉 * ->
*
*
*
*
*
*
怎么办???帮帮我!!~~~~~
|
很佩服楼主的实践精神。
LINUX 下不是很好调试,你可以转到WINDOWS 的CMD 模式下,用DEBUG 命令
如果是串口一,地址大概是 0x3F8 ,如果是并口一,地址大概是0x378
可以用o 3F8 0x00 , o 3F8 0xff , o 378 0x00 , o 378 0xff 首先测试一下你的输入输出口,如果正常,那么估计是你的LINUX 下的串并口驱动配置问题(0x378?)
LINUX 下不是很好调试,你可以转到WINDOWS 的CMD 模式下,用DEBUG 命令
如果是串口一,地址大概是 0x3F8 ,如果是并口一,地址大概是0x378
可以用o 3F8 0x00 , o 3F8 0xff , o 378 0x00 , o 378 0xff 首先测试一下你的输入输出口,如果正常,那么估计是你的LINUX 下的串并口驱动配置问题(0x378?)
|
你就不能拿导线直连么?
led工作也要有压降的,小小的并口未必能驱动起它来。
led工作也要有压降的,小小的并口未必能驱动起它来。
|
我看书上的图有25个引脚,而你的图只有19个,为啥呢?