Linux内核编程(项目笔记)——项目:创建并口驱动程序
2011-08-07 06:30
295 查看
由于本项目是并口的驱动程序编写,没有硬件支持,不做实操。
并口的硬件:
X86操作系统,使用inb()和outb(),并口常被当做超级输入输出设备中的一部分,或者是添加到系统中的单个(PCI)卡。
并口寄存器。信号与并行连接器针脚之间的关系。
附:一个优秀的寄存器级程序员应该始终知道尽可能多的底层硬件知识,包括为特殊并口I/O设备找出数据表。在数据表中,你可以找到设备的反向/源电流限制。
并口的软件:
设置文件操作(fops):
structfile_operations parlport_fops
parlport_open
parlport_close
parlport_ioctl
设置模块初始化例程:
parll_init
regeister_chrdev//注册模块
request_region//申请区域
设置模块清理例程:
parll_cleanup
release_region//释放区域
unregister_chrdev//注销模块
最后,包含进模块中:
module_init(parll_init)
module_exit(parll_cleanup)
插入模块:
模块插入内核
insmodparll.ko
模块与文件系统相连
mknod/dev/parll c <xxx> 0
应用程序代码
通过open、close和ioctl函数进入系统调用,在模块所定义的fops结构中去调用相应的操作,在进入其底层的硬件操作程序上,对硬件进行操作。
附:在/dev下的设备文件节点是系统上应用程序与内核通信的关键连接点。应用程序中调用open函数打开设备文件节点,映射到此节点对应的设备驱动程序模块,也就是到内核中找open所对应模块的parll_open函数,执行,而同时open返回文件描述符。之后其他函数类似操作。
并口的硬件:
X86操作系统,使用inb()和outb(),并口常被当做超级输入输出设备中的一部分,或者是添加到系统中的单个(PCI)卡。
并口寄存器。信号与并行连接器针脚之间的关系。
附:一个优秀的寄存器级程序员应该始终知道尽可能多的底层硬件知识,包括为特殊并口I/O设备找出数据表。在数据表中,你可以找到设备的反向/源电流限制。
并口的软件:
设置文件操作(fops):
structfile_operations parlport_fops
parlport_open
parlport_close
parlport_ioctl
设置模块初始化例程:
parll_init
regeister_chrdev//注册模块
request_region//申请区域
设置模块清理例程:
parll_cleanup
release_region//释放区域
unregister_chrdev//注销模块
最后,包含进模块中:
module_init(parll_init)
module_exit(parll_cleanup)
插入模块:
模块插入内核
insmodparll.ko
模块与文件系统相连
mknod/dev/parll c <xxx> 0
应用程序代码
通过open、close和ioctl函数进入系统调用,在模块所定义的fops结构中去调用相应的操作,在进入其底层的硬件操作程序上,对硬件进行操作。
附:在/dev下的设备文件节点是系统上应用程序与内核通信的关键连接点。应用程序中调用open函数打开设备文件节点,映射到此节点对应的设备驱动程序模块,也就是到内核中找open所对应模块的parll_open函数,执行,而同时open返回文件描述符。之后其他函数类似操作。
相关文章推荐
- Django笔记——使用Anaconda创建虚拟环境并搭建Django项目
- 用vue构建项目笔记1(用vue脚手架创建项目)
- Pyramid 学习笔记:创建Pyramid项目(中)
- 笔记:GitHub创建项目并提交
- JavaEE完全实战详解笔记--在Eclipse中创建一个简单的web项目
- java鬼混笔记:springboot 3、springboot创建web项目和打包
- Maven学习笔记——(1)Maven在Eclipse中创建JavaWeb项目
- maven创建项目报错及解决方案(笔记)
- Maven学习笔记----使用Maven创建Java项目
- GitHub创建新仓库并上传项目(笔记)
- Symfony1.4.11学习笔记(二):创建项目
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
- Maven下SSM项目整合笔记00:项目简介+创建maven
- typeorm学习笔记之创建项目
- 项目笔记:创建XML文件和导出功能
- Linux内核编程(项目笔记)——项目:进程内存映射
- SSM框架学习之高并发秒杀业务--笔记1-- 项目的创建和依赖
- ElasticSearch 6.x 学习笔记:36.新闻搜索之Maven项目创建
- IntelliJ IDEA 学习笔记 - Hello World 项目创建与配置文件介绍
- Django笔记:1.创建一个项目