嵌入式
Loopers
操作系统爱好者
展开
-
Linxu 输入子系统分析
/*输入子系统分析 input.c*//*1. 为什么需要输入子系统? 由于我们平时用的输入设备比较杂乱,比较多。 比如: 鼠标,键盘, 触摸屏等。 当我们写驱动的时候都需要注册字符设备文件或者混杂设备文件。所以出现了一种机制。 这种机制就是把各种输入设备定义为input_device。 把处理这种设备的函数定义为input_handler。 这个样以来,程序员只需要操作input原创 2015-01-27 12:46:58 · 696 阅读 · 0 评论 -
LCD驱动程序分析
/* LCD驱动程序分析 和别的驱动程序一样,首先找到模块函数的入口处*/#include "s3c2410fb.h"/* Debugging stuff */#ifdef CONFIG_FB_S3C2410_DEBUGstatic int debug = 1;#elsestatic int debug = 0;#endif#define dprintk(msg..原创 2015-01-24 22:21:20 · 1090 阅读 · 0 评论 -
DM9000驱动分析之发送
/*分析DM9000发生数据函数**//* * Hardware start transmission. * Send a packet to media from the upper layer. */static intdm9000_start_xmit(struct sk_buff *skb, struct net_device *dev){ unsigned long原创 2015-01-21 18:29:04 · 831 阅读 · 0 评论 -
DM9000驱动之接受
/*分析DM9000收到一个数据包后,应该做何处理?*//*当收到一个数据包后,DM9000就会触发一次发送中断,跳到中断处理函数处理*/static irqreturn_t dm9000_interrupt(int irq, void *dev_id){ /* Received the coming packet */ //当接受到一个数据包后 if (int_status & I原创 2015-01-21 18:30:09 · 938 阅读 · 0 评论 -
DM9000驱动分析之初始化
/*分析DM9000网卡驱动之初始化*//*找到DM9000.c 文件路径: linux/drivers/net下 找到模块的入口函数处*/static int __initdm9000_init(void){ printk(KERN_INFO "%s Ethernet Driver, V%s\n", CARDNAME, DRV_VERSION); return原创 2015-01-21 14:48:50 · 3304 阅读 · 0 评论 -
linux网络分析之回环网卡
/* 所谓回环网卡, 就是一个虚拟网卡。 既然是虚拟网卡那么就和硬件没关系。* 在linux主机上输入"ifconfig" 看见eth 和 lo。 其中lo就是所谓的虚拟网卡,即回环网卡* 本节主要分析这个虚拟网卡的驱动程序*/struct pcpu_lstats { u64 packets; u64 bytes; struct u64_stats_sync syncp原创 2015-01-20 12:45:25 · 10296 阅读 · 0 评论 -
Nand Flash驱动程序分析
/*Nand Flash驱动分析*//*首先: 市面上的开发板很多,Nand Flash差不多都一样。先说说Nand Flash的特性*//* 上图是OK6410开发板的Nand Flash原理图,从上图可知:1. 数据线和地址线明显是公用的。因为只看见了DATA0-DATA7没看见地址线。作为一个存储芯片当然要写数据,读数据。当然需要地址线。2. DATA0-DATA7在好多地址被原创 2015-02-05 19:43:07 · 869 阅读 · 0 评论 -
linux网络子系统分析
/*接下来的几节分析Linux网络*//**首先: 分析Linux网络子系统的构成,以及Linux网络子系统的作用*//*Linux网络子系统结构图*//*从上图可以看出:用户空间有: 应用层内核空间包含的有: 系统调用接口: 为应用程序提供访问网络子系统的统一方法 协议无关接口: 提原创 2015-01-19 13:29:19 · 1399 阅读 · 0 评论 -
Linux串口驱动分析write
/*和read的分析过程一样, 我们首先分析tty_write*//*最重要的就是do_tty_write函数。 前面都是一些合法性判断*/static ssize_t tty_write(struct file *file, const char __user *buf,size_t count, loff_t *ppos){ struct inode *inode = file->f原创 2015-01-16 18:28:16 · 6020 阅读 · 2 评论 -
Linux串口驱动分析初始化
/** * uart分析 * * 其实串口分析就两个重要的文件: S3c2440.c Samsung.c * * **//** s3c2440.c **/static struct s3c24xx_uart_info s3c2440_uart_inf = { .name = "Samsung S3C2440 UART", .type = PORT_S3C2440,原创 2015-01-14 17:09:28 · 2892 阅读 · 0 评论 -
Linux串口分析open
/* * uart 打开分析 * * 问题: 当应用程序调用open系统调用函数,那么是如何open串口的? * * *//*Samsung.c 函数的模块入口函数 *它是一个公用的借口,不管2440/6410都会调用该函数 * */static int __init s3c24xx_serial_modinit(void){ int ret; ret = uart_原创 2015-01-15 18:30:55 · 3042 阅读 · 0 评论 -
Linux串口驱动分析read
/*串口read函数分析* 当应用程序调用read系统调用时,会调用tty_fops中的tty_read* 接下来分析tty_read函数** 其中最重要的就是ld->ops->read(tty,file,buf,count);* 也就是调用线路规程中read函数*/static ssize_t tty_read(struct file *file, char __user *bu原创 2015-01-16 13:44:40 · 5265 阅读 · 0 评论 -
字符设备与块设备的区别
块设备:系统中可以随机访问(不按顺序访问)数据,这种设备称为块设备。比如我们常用的磁盘就是一种典型的块设备。 字符设备: 系统中按字符流的方式有序的访问数据,这种设备称为字符设备。比如我们常用的键盘。 为什么说磁盘是一种典型的块设备呢? 假如磁盘是按字符设备的方式访问数据, 那就是说磁盘是按顺序访问数据的。 如果读取数据时一个数据在1扇区,另一个数据在20扇区。那么原创 2015-02-02 22:38:12 · 2361 阅读 · 0 评论 -
Linux触摸屏驱动分析(6410) -- s3c-ts
static struct s3c_ts_mach_info s3c_ts_platform __initdata = { .delay = 10000, /*转化延迟*/ .presc = 49, /*转化时钟分频*/ .oversampling_shift = 2, /*转化次数 1<<2 == 4次*/ .resol_bit = 12, /*转化进度*/原创 2015-01-14 13:35:38 · 1616 阅读 · 0 评论 -
Linux FrameBuffer分析
/* framebuffer分析 *//* framebuffer初始化 */static int __init fbmem_init(void){ proc_create("fb", 0, NULL, &fb_proc_fops); //注册主设备号29, 次设备号为0的字符设备 if (register_chrdev(FB_MAJOR,"fb",&fb_fops)) pri原创 2015-01-28 20:17:24 · 942 阅读 · 0 评论 -
Linux平台驱动分析
/*platform总线,驱动,设备模型。 这是一种机制。这样会使得驱动编写方便,便于维护*//*platform总线是一种虚拟的总线。 其实platform总线也是当作设备*//*******************************platform总线******************************************************/int __ini原创 2015-01-27 18:15:02 · 558 阅读 · 0 评论 -
Linux设备驱动之字符设备(一)
Linux中设备驱动的分类从上图可以看到Linux系统将各异的设备分为三大类:字符设备,块设备和网络设备。内核针对每一类设备都提供了对应驱动模型架构,包括基本的内核设施和文件系统接口。字符设备:在传送过程中以字符为单位,一个字节一个字节的读写,不能随机的读写数据,因为这类设备读写速度比较缓慢(因而其内核设施中不提供缓存机制),常见的字符设备有键盘,鼠标已打印机设备等。块设备: 是指可以从任意位置读取原创 2016-06-22 15:27:59 · 1485 阅读 · 0 评论