- 博客(6)
- 收藏
- 关注
原创 Linux块设备驱动的模块加载与卸载
在块设备驱动的模块家在函数中通常需要完成如下工作:1. 分配、初始化请求队列,绑定请求队列和请求函数。2. 分配、初始化gendisk,给gendisk的major、fops、queue等成员赋值,最后添加gendisk。3. 注册块设备驱动。代码清单13.9和13.10分别给出了使用blk_alloc_queue()分配请求队列并使用blk_queue_make_request(
2013-12-18 18:01:27
2016
原创 工程中的Linux设备驱动
一、platform 设备驱动1.1 platform 总线、设备与驱动在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。Linux发明了一种虚拟的总线,称为platform总线, 相应的设备成为platform_device, 而驱动成为platform_driver。platform_device结构体
2013-11-27 20:19:12
638
原创 linux内存与I/O访问
1、用户空间内存动态申请在用户空间动态申请内存的函数为malloc(), 这个函数在各种操作系统上的使用是一致的,malloc() 申请的内存的释放函数为 free()。malloc() 的内存一定要被 free() ,否则会造成内存泄露。2、内核空间内存动态申请1. kmalloc()void *kmalloc(size_t size, int flags);给
2013-11-26 11:18:19
665
原创 中断与时钟
1、申请IRQint request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id);irq是要申请的硬件中断号;handler 是向系统登记的中断处理函数(顶半部),是一个回调函数,中段发生时,系统调用这个函数,dev_id参
2013-11-20 16:53:45
819
转载 I2C设备驱动流程
I2C设备驱动流程一、I2C设备驱动流程1) i2c_register_board_info定义I2C器件信息(Name,Address,etc.)static struct i2c_board_info __initdata pi2c_board_info[] = { { I2C_BOARD_INFO("max1586
2013-11-20 16:48:30
950
转载 linux-tar分卷压缩与解压缩
举例说明:要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:tar cjf - logs/ |split -b 1m - logs.tar.bz2.完成后会产生下列文件:logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac要解压的时候只要执行下面的命令就可以了:cat logs.tar.bz2
2013-11-11 15:02:33
948
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人