摘要: nor flash 驱动程序设计流程:nor flash 驱动程序内核识别分析:analysis codeNOR FLASH识别过程:do_map_probe("cfi_probe", s3c_nor_map); drv = get_mtd_chip_driver(name) ret = drv->probe(map); // cfi_probe.c cfi_probe mtd_do_chip_probe(map, &cfi_chip_probe); cfi = genprobe_ident... 阅读全文
posted @ 2012-06-10 16:52 ITMelody 阅读(606) 评论(0) 推荐(1) 编辑
摘要: nand flash 驱动内核实现分析过程:analysis codes3c2410_nand_inithws3c2410_nand_init_chipnand_scan // drivers/mtd/nand/nand_base.c 根据nand_chip的底层操作函数识别NAND FLASH,构造mtd_info nand_scan_ident nand_set_defaults if (!chip->select_chip) chip->select_chip = nand_select_chip; // 默认值不... 阅读全文
posted @ 2012-06-10 08:47 ITMelody 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 程序设计实现过程:块设备内核实现分析过程:analysis code分析ll_rw_block for (i = 0; i < nr; i++) { struct buffer_head *bh = bhs[i]; submit_bh(rw, bh); struct bio *bio; // 使用bh来构造bio (block input/output) submit_bio(rw, bio); // 通用的构造请求: 使用bio来构造请求... 阅读全文
posted @ 2012-06-04 23:13 ITMelody 阅读(422) 评论(0) 推荐(0) 编辑
摘要: usb驱动程序设计实现步骤:usb总线驱动内核代码分析过程:analysis codehub_irq kick_khubd hub_thread hub_events hub_port_connect_change udev = usb_alloc_dev(hdev, hdev->bus, port1); dev->dev.bus = &usb_bus_type; ... 阅读全文
posted @ 2012-06-03 21:57 ITMelody 阅读(929) 评论(0) 推荐(0) 编辑
摘要: 触摸屏响应过程:触摸屏程序代码实现:s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#include <linux/serio.h>#include <linux/delay.h>#include <linux/platform_device 阅读全文
posted @ 2012-06-03 10:41 ITMelody 阅读(640) 评论(0) 推荐(0) 编辑
摘要: lcd驱动设计实现流程图:驱动代码实现:lcd.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/errno.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/slab.h>#include <linux/delay.h>#include <linux/fb.h>#include <linux/init.h>#include & 阅读全文
posted @ 2012-05-27 10:49 ITMelody 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 总线设备驱动模型关系图:驱动程序总线设备驱动模型代码编写步骤:device、driver、app led驱动实例:device代码实现:led_drv.c#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/types.h>#include <linux/interrupt.h>#include <linux/list.h>#includ 阅读全文
posted @ 2012-05-23 11:27 ITMelody 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 编写输入子系统的驱动程序步骤:驱动程序代码实现:buttons.c/* 参考drivers\input\keyboard\gpio_keys.c */#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/interrupt.h>#include <linux/irq.h>#include <linux/sched.h>#include <l 阅读全文
posted @ 2012-05-22 16:06 ITMelody 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 输入子系统由驱动层、输入子系统核心、事件处理层三部分组成,个输入事件,如鼠标移动、键盘按下等通过Driver->Inputcore->Event handler->userspace的顺序到达用户控件的应用程序。驱动层:将底层的硬件输入转化为统一事件形式,想输入核心(Input Core)汇报。输入子系统核心:承上启下。为驱动层提供输入设备注册与操作接口,如:input_register_device;通知事件处理层对事件进行处理;在/Proc下产生相应的设备信息事件处理层:主要是和用户空间交互。(Linux中在用户空间将所有的设备都当初文件来处理,由于在一般的驱动程序中都有 阅读全文
posted @ 2012-05-22 11:25 ITMelody 阅读(1417) 评论(0) 推荐(1) 编辑
摘要: 实现原理图:驱动程序实现:buttons.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/uaccess.h>#include <asm/irq.h>#include <asm/io.h>#include <asm/arch 阅读全文
posted @ 2012-05-20 11:33 ITMelody 阅读(423) 评论(0) 推荐(1) 编辑