linux设备驱动开发详解

第五章 linux文件系统与设备文件系统
1.linux系统提供的文件操作接口
creat 是文件创建接口
open 可以进行文件打开,打开文件以后返回文件操作符,也可以进行文件创建,创建成功以后返回创建成功的文件操作符,同时设置读写权限
write 是通过文件操作符将内容写入文件
read 是通过文件操作符读取文件中的内容
lseek是进行文件读写位置定位
close是通过文件操作符关闭文件
2.C语言标准库中包含的文件操作接口
fopen是可以打开指定文件或者创建指定文件,返回文件操作符,需要设置读写权限
fread是读取文件操作符指定的文件中的内容
fwrite是写入内容到文件操作符指定的文件中
fclose是关闭文件操作符指定的文件
3.linux文件系统与设备驱动

在这里插入图片描述
file_operations是字符设备驱动的核心结构体

file结构体是linux内核描述一个文件是打开的文件的整个状态,其中结构体最重要的元素private_data大多被用来指向设备驱动自定义用于描述设备的结构体,如file_operations结构体,file结构体具体包含元素如下:
在这里插入图片描述
inode结构体是linux管理文件系统最基本的单位,也是文件系统连接任何子目录和文件系统的桥梁。在这里插入图片描述
其中的i_rdev字段包含设备编号,分为主设备号和次设备号,主设备号是驱动对应的概念,表示同一类设备,次设备号用来描述使用该驱动的设备的编号。

linuxdriver_code_tool .....................\03 .....................\..\2.6内核升级工具 .....................\..\...............\device-mapper-1.00.19-2.i386.rpm .....................\..\...............\lvm2-2.00.25-1.01.i386.rpm .....................\..\...............\mkinitrd-4.2.0.3.tar.tar .....................\..\...............\module-init-tools-3.2.2.tar.bz2 .....................\..\...............\modutils-2.4.5-1.src.rpm .....................\04 .....................\..\内核模块参数范例 .....................\..\................\book.c .....................\..\内核模块导出符号 .....................\..\................\export_symb.c .....................\..\最简单的内核模块 .....................\..\................\hello.c .....................\05 .....................\..\udev源代码 .....................\..\..........\udev-114.tar.gz .....................\06 .....................\..\globalmem驱动 .....................\..\.............\globalmem.c .....................\..\linux内核container_of宏_Linux技术文章_Linux_操作系统.mht .....................\..\【转】container_of函数简介 - 嵌入式linux - 斯是陋室,惟吾德馨.htm .....................\..\【转】container_of函数简介 - 嵌入式linux - 斯是陋室,惟吾德馨_files .....................\..\..................................................................\bg_art_bottom.gif .....................\..\..................................................................\bg_art_left.gif .....................\..\..................................................................\bg_art_left_bottom.gif .....................\..\..................................................................\bg_art_left_top.gif .....................\..\..................................................................\bg_art_right.gif .....................\..\..................................................................\bg_art_right_bottom.gif .....................\..\..................................................................\bg_art_right_top.gif .....................\..\..................................................................\bg_art_top.gif .....................\..\..................................................................\bg_menu.gif .....................\..\..................................................................\comment.htm .....................\..\..................................................................\comment_files .....................\..\..................................................................\.............\base.css .....................\..\..................................................................\.............\index.css .....................\..\..................................................................\.............\num.png .....................\..\..................................................................\img_menu_left.gif .....................\..\..................................................................\index.css .....................\..\..................................................................\tophem1.gif .....................\..\..................................................................\userstar.gif .....................\..\包含2个globalmem设备驱动 .....................\..\..........................\globalmem_two.c .....................\07 .....................\..\含并发控制的globalmem驱动 .....................\..\.........................\globalmem_lock.c .....................\08 .....................\..\globalfifo驱动 .....................\..\..............\globalfifo.c .....................\..\poll应用程序范例 .....................\..\................\pollmonitor.c .....................\09 .....................\..\异步通知应用程序范例 .....................\..\....................\asyncmonitor.c .....................\..\支持异步通知的globalfifo .....................\..\........................\globalfifo_async.c .....................\10 .....................\..\S3C2410实时钟驱动 .....................\..\.................\s3c2410-rtc.c .....................\..\秒设备驱动与应用程序 .....................\..\....................\second.c .....................\..\....................\second_test.c .....................\11 .....................\..\DMA范例 .....................\..\.......\3c505.c .....................\..\.......\3c505.h .....................\..\.......\dma.h .....................\..\静态映射范例 .....................\..\............\mach-smdk2440.c .....................\12 .....................\..\NVRAM驱动 .....................\..\.........\generic_nvram.c .....................\..\平台设备 .....................\..\........\devs.c .....................\..\看门狗驱动 .....................\..\..........\s3c2410_wdt.c .....................\..\触摸屏驱动 .....................\..\..........\作为input设备 .....................\..\..........\.............\s3c2410_ts.c .....................\..\..........\.............\s3c2410_ts.h .....................\..\..........\作为普通字符设备 .....................\..\..........\................\s3c2410-ts.c .....................\13 .....................\..\IDE驱动 .....................\..\.......\ide-disk.c .....................\..\.......\ide-h8300.c .....................\..\RAMDISK驱动 .....................\..\...........\rd.c .....................\14 .....................\..\S3C2410串口驱动 .....................\..\...............\regs-gpio.h .....................\..\...............\regs-serial.h .....................\..\...............\s3c2410.c .....................\..\串口核心层 .....................\..\..........\serial_core.c .....................\..\..........\serial_core.h .....................\15 .....................\..\S3C2410 I2C主机驱动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值