欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

pc linux 外设寄存器操作(8250串口通讯)

更新时间: 2014-01-05 03:19:39 责任编辑: Author_N1

 

PC linux 外设寄存器操作(8250串口通信)
我把ubuntu linux 内核自带的8250驱动(8250_core.ko、serial_core.ko)都卸载了,
想练习写个直接操作串口的驱动,在网上找了一些资料,一般都是汇编语言直接操作0x3f8-0x3fE那几个寄存器,我想把它改为c语言以驱动方式实现,参照原内核驱动代码,我用inb、outb这两个接口直接操作8250寄存器,例如:outb(value,寄存器地址),但无法实现功能,感觉好像根本没有操作到8250芯片的寄存器,我的这个做法有什么问题吗?我直接向0x3f8写值不是操作8250芯片寄存器吗?想操作外设寄存器需要什么动作?
--参考方法--
您好,你使用的地址可能不对,因为操作系统中的寄存器地址使用的都是虚拟地址。你要把物理地址先映射成虚拟地址。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:39
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20828/
本文WWW.DOC100.NET DOC100.NET版权所有。