ChinaUnix.net
相关文章推荐:

Linux 设备驱动基础

linux 内核中采用可加载的模块化设计(LKMs,Loadable Kernel Modules),一般情况下编译的linux 内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以选择在内核中,或者编译为内核的模块文件。常见的驱动程序也是作为内核模块动态加载的。 模块相关命令 lsmod 列出当前系统加载的模块 rmmod 将当前模块卸载 insmod、modprobe 用于加载当前模块。但insmod不会自动解决依存关系,而modprobe可以根...

by hunklinux - Linux文档专区 - 2008-04-13 19:50:08 阅读(1128) 回复(0)

相关讨论

驱动程序为 #include #include #include #include #include #include #include #include #include #include #include static unsigned int major = 0; static unsigned int minor = 0; static unsigned int devno; static char *filename = "mydevice"; static struct cdev *mycdev = NULL; static int mycdevflg = 0; static int devnoflg = 0; static int adddevflg = 0; MODULE_LICENSE("Dual BSD/GPL"); static int...

by 潇洒人生 - Linux文档专区 - 2007-12-09 21:44:26 阅读(745) 回复(0)

本章导读 本章讲述一个底层驱动软件工程师必备的硬件基础,给出了嵌入式系统硬件原理及分析方法的一个完整而简洁的全景视图。 2.1节描述了微控制器、微处理器、数字信号处理器以及应用于特定领域的处理器各自的特点,分析了处理器的体系架构和指令集。 2.2节对嵌入式系统中所使用的各类存储器与CPU的接口、应用领域及特点进行了归纳整理。 2.3节分析了常见的外设接口与总线的工作方式,包括串口、I2C、USB、以太网接口、ISA、...

by sjhf - Linux文档专区 - 2009-03-23 11:08:42 阅读(824) 回复(0)

欢迎大家下载

by jujumao1202 - Linux新手园地 - 2011-10-12 00:41:54 阅读(1762) 回复(1)

linux设备驱动中,内核是怎样从硬件中读取数据,是用的什么接口函数?

linux内核驱动

by xueyunzb - 驱动开发 - 2011-03-24 00:03:28 阅读(2543) 回复(1)

设备管理即输入/输出子系统,可分为上下两部分:一部分是上层的,与设备无关,这部分根据输入/输出请求,通过特定的设备驱动程序接口来与设备进行通信。另一部分是下层的,与设备有关,常称为设备驱动程序,它直接与相应设备打交道,并且向上层提供一组访问接口。 设备管理的目标是对所有外接设备进行良好的读、写、控制等操作。由于用户希望能用同样的应用程序和命令来访问设备和普通文件。为此,linux中的设备管理应用了设备文件...

by 杨铁柱嵌入式 - Linux文档专区 - 2010-02-20 12:29:58 阅读(901) 回复(0)

一个USB的设备,内核内中有个模块可以驱动它,但我不想用这个驱动,我想用自己写的一个驱动。可设备插上后,总是被内核中的那个驱动抢去。怎么办呀??

by jackin0627 - Linux新手园地 - 2009-11-23 16:23:29 阅读(1680) 回复(10)

put_user(),get_user()为两个宏,当拷贝数据为1, 2, 4 字节时, 速度比较快. int get_user(value, address), int put_user(expression, address), 第一个参数为内核空间的变量,第二个为一个指针,为一个用户空间地址, 传输大小由address 类型决定. access_ok()用于检查程序是否能以指定的方式访问指定的地址指定长度的内存. int access_ok(int type, unsigned long addr, unsigned long size) type 为 VERIFY_READ, VERIFY_WRITE...

by opennewlife - Linux文档专区 - 2009-09-25 20:46:13 阅读(819) 回复(0)

平台设备的引入是为了能更好的描述设备的资源信息. 属于platform device的设备的共同点是: 直接通过cpu的总线寻址. 平台设备对象由platform_device描述: struct platform_device { const char * name; u32 id; struct device dev; //对应的设备 u32 num_resources; //资源的数量 struct resource * resource; //资源信息 }; 与此对应的平台设备驱动程序由struct platform_driver描述: struct platform_driver { ...

by tancotq - Linux文档专区 - 2009-08-14 01:54:04 阅读(732) 回复(0)

1.arch/arm/mach-xxx/devices.c文件设置了所有设备的资源(物理地址,中断号等)。把每个device和resource保存在devices数组中;然后platform_add_devices把传入的devices中的每个设备调用platform_device_register注册到系统中。 arch_initcall宏将调用xxx_devices_init函数,注册各个设备。 arch_initcall at6600_devices_init platform_add_devices lm_add_devices platform_device_register lm_device_register device_ini...

by liaojs - Linux文档专区 - 2009-05-29 13:13:11 阅读(689) 回复(0)

驱动设备,类,总线这几个类的关系! 我一直迷惑!再就是对我们驱动开发时,有时注册的方式都不一样,是不是要根据你的设备要求来的! 如:字符注册,总线注册,设备注册,类注册。 但是,从内核的拓扑看的话,又好像是相互归属。设备驱动,又是总线下面,设备又归属到某一类的设备。而设备统一一个归属。相互链接!!真是比较麻烦! 前辈!!! 讨教几抬有关这方面的内容知识! 谢谢!!!

by shuiyu123 - 驱动开发 - 2009-04-09 14:24:53 阅读(1458) 回复(4)