社区
Linux/Unix社区
帖子详情
编写linux设备驱动程序的一个问题
zeng_xiangyang
2003-08-19 04:51:24
在编写linux设备驱动程序,在file_operations中,read的函数原形是: ssize_t (*read) (struct file *, char *, size_t, loff_t *);
而我们自己在驱动程序中实现device_read()时,device_read()函数中的参数是不是一定要和file_operations中声明的一样啊?我们自己能不能改变device_read()函数中的参数类型或者参数个数啊?
...全文
63
4
打赏
收藏
编写linux设备驱动程序的一个问题
在编写linux设备驱动程序,在file_operations中,read的函数原形是: ssize_t (*read) (struct file *, char *, size_t, loff_t *); 而我们自己在驱动程序中实现device_read()时,device_read()函数中的参数是不是一定要和file_operations中声明的一样啊?我们自己能不能改变device_read()函数中的参数类型或者参数个数啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zeng_xiangyang
2003-08-19
打赏
举报
回复
rlei,谢谢你的指点。我是刚接触linux设备驱动,我们现在有个项目
(服务元网络体系结构),我们导师自己提出来的一种新型网络体系结构,
要在linux下实现,我可能要负责网卡驱动方面的。我刚接触linux,以前从来
都没接触过,望以后多多指点.我的qq:171241219
rlei
2003-08-19
打赏
举报
回复
参数个数和类型是不能改变的而且必须和file_operations中声明一样。正如楼上大哥所说一般都是用char *做变通的。我想知道楼主是不是也在学习devicedriver啊,我也在做这方面的学习。我的qq是99119572,呵呵,多给我点分,我们以后一起探讨。
zhangjy2001
2003-08-19
打赏
举报
回复
我也想知道!!!
wwwunix
2003-08-19
打赏
举报
回复
参数要一样.不过你可以利用char *指针参数做变通.
深入分析
Linux
内核源码.chm
第一章 走进
linux
1.1 GNU与
Linux
的成长 1.2
Linux
的开发模式和运作机制 1.3走进
Linux
内核 1.4 分析
Linux
内核的意义 1.5
Linux
内核结构 1.6
Linux
内核源代码 1.7
Linux
内核源代码分析工具 第二章
Linux
运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5
Linux
中的分页机制 2.6
Linux
中的汇编语言 第三章中断机制 3.1 中断基本知识 3.2中断描述符表的初始化 3.3异常处理 3.4 中断处理 3.5中断的后半部分处理机制 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2
Linux
中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.5 进程组织的方式 4.6 内核线程 4.7 进程的权能 4.8 内核同步 第五章进程调度 5.1
Linux
时间系统 5.2 时钟中断 5.3
Linux
的调度程序-Schedule( ) 5.4 进程切换 第六章
Linux
内存管理 6.1
Linux
的内存管理概述 6.2
Linux
内存管理的初始化 6.3 内存的分配和回收 6.4 地址映射机制 6.5 请页机制 6.6 交换机制 6.7 缓存和刷新机制 6.8 进程的创建和执行 第七章 进程间通信 7.1 管道 7.2 信号(signal) 7.3 System V 的IPC机制 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8
Linux
2.4文件系统的移植
问题
第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2 实现机制 10.3 模块的装入和卸载 10.4 内核版本 10.5
编写
内核模块 第十一章
设备
驱动程序
11.1 概述 11.2
设备
驱动基础 11.3 块
设备
驱动程序
11.4 字符
设备
驱动程序
第十二章 网络 12.1 概述 12.2 网络协议 12.3 套接字(socket) 12.4 套接字缓冲区(sk_buff) 12.5 网络
设备
接口 第十三章 启动系统 13.1 初始化流程 13.2 初始化的任务 13.3
Linux
的Boot Loarder 13.4 进入操作系统 13.5 main.c中的初始化 13.6 建立init进程 附录: 1
Linux
2.4内核API 2.1
驱动程序
的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4
Linux
内存管理中Slab缓冲区 2.5
Linux
中的VFS 2.6
Linux
的连网 2.7 网络
设备
支持 2.8 模块支持 2.9 硬件接口 2.10 块
设备
2.11 USB
设备
设备
驱动:
Linux
系统下的字符
设备
驱动程序
编程
一、实验目的 通过
一个
简单的
设备
驱动的实现过程。学会
Linux
中
设备
驱动程序
的
编写
。 二、实验环境 Ubuntu20.04TSL,
Linux
5.10.0 三、实验内容 1、
编写
一个
字符
设备
驱动程序
,并在
设备
的打开操作中打印主次
设备
号; 2、
编写
一个
用户测试程序,实现
设备
的读操作。 四、实验原理 实验中用到的系统调用函数(包括实验原理中介绍的和自己采用的),实验步骤 字符
设备
是指只能
一个
字节
一个
字节读写的
设备
,不能随机读取
设备
内存中的某一数据,读取数据需要按照先后顺序。字符
设备
是面向流的
设备
,常见的字符
设备
有
Linux
设备
驱动开发---字符
设备
驱动程序
字符
设备
驱动程序
1 主
设备
和次
设备
的概念
设备
号的注册和释放静态方法动态方法区别2
设备
文件操作struct file_operations与struct file、struct inode关系3 分配和注册字符
设备
class_createcdev_adddevice_create4 字符
设备
驱动程序
字符
设备
通过字符(
一个
接
一个
的字符)以流方式向用户程序传递数据,就像串行端口那样。字符
设备
驱动通过/dev目录下的特殊文件公开
设备
的属性和功能,通过这个文件可以在
设备
和用户应用程序之间交换数据,也可以通过它来控
Linux
驱动程序
教程:如何
编写
简单的
Linux
设备
驱动程序
翻译来自: https://www.apriorit.com/dev-blog/195-simple-driver-for-
linux
-os 此
Linux
设备
驱动程序
教程将为您提供有关如何为
Linux
操作系统
编写
设备
驱动程序
的所有必要信息。 本文包含
一个
易于遵循的实用
Linux
驱动程序
开发示例。 我们将讨论以下内容: 内核日志系统 如何使用角色
设备
如何使用内核中的用户级内存 ...
Linux
设备
驱动程序
(一)——
设备
驱动简介
这一部分主要是用来介绍
Linux
设备
驱动程序
的一些基本概念,包括:
Linux
设备
驱动程序
的作用、内核功能的划分、
设备
和模块的分类以及版本编号。
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章