Linux Driver
文章平均质量分 76
comwise
这个作者很懒,什么都没留下…
展开
-
Dm9000网卡芯片硬件原理分析
. DM9000网卡芯片驱动的预备知识:MAC/PHYDriver2011-01-27 11:24:29 阅读43评论0 字号:大中小 订阅ETHERNET的接口实质是MAC通过MII总线控转载 2013-11-07 00:59:44 · 3969 阅读 · 1 评论 -
韦东山视频实验之Input子系统分析之二
应用程序如何read?Input子系统分析之一讲过应用程序去open,那么如何read呢?搜遍input.c 也没有提供read的函数,有一个可惜不是;那read在哪里定义的呢?想到可能在evdev.c里定义的,先看下他的初始化模块仍以evdev.c (drivers/input/evdev.c)为基础进行说明:static int __init evdev_init(void原创 2013-09-13 21:38:30 · 1643 阅读 · 0 评论 -
韦东山视频实验之USB鼠标驱动
usb 设备主要涉及配置-》接口-》端点,基本上是包含关系 usb设备主要使用接口提供的配置信息,可以当做操作的逻辑设备和传输通道传输数据采用urb 如何测试1. make menuconfig去掉原来的USB鼠标驱动-> Device Drivers -> HID Devices 2. make uImage 并使用新的内核启动3. insmod u原创 2013-09-18 23:46:02 · 1949 阅读 · 0 评论 -
韦东山视频实验之Nand驱动
这里主要牵涉到static struct nand_chip mtd_info这两个底层封装的函数nand原理分析: 驱动分析:1)要进行nand时钟和时序的设置 这里面会进行nand的寄存器的片选,命令的设置,地址或者数据的设置,状态位的读取,nand时钟和时序的设置等2)nand flash底层的自动探测,识别nand 这里面会进行初始的函数设置na原创 2013-10-15 20:01:56 · 1263 阅读 · 0 评论 -
韦东山视频实验之Input子系统分析之一
原理阐述:主要有驱动层,input核心层,时间处理层,应用层 从前往后一直传送到应用层 调试问题:1. Unspecified device as /devices/virtual/input/input0在里面初始化的时候,初始name即可加入 button_dev->name = "mini2440_keys";之类的即可 2.原创 2013-09-11 13:48:07 · 4193 阅读 · 0 评论 -
韦东山视频实验之虚拟网卡
遇到的问题1.调试老是弹出以下问题 /home/smb/pro/16th_virtnet/virtnet.c: In function 'emulator_rx_packet':/home/smb/pro/16th_virtnet/virtnet.c:48: error: dereferencing pointer to incomplete type/home/smb/pro/1原创 2013-10-16 21:58:38 · 1687 阅读 · 1 评论 -
韦东山视频实验之Nor驱动
遇到的有两个问题1)写数据: 在地址0x100000写入0x1234使用如下m命令得不到之前写入的值 NOR手册:往地址555H写AAH 往地址2AAH写55H 往地址555H写A0H 往地址PA写PD2440的A1接到NOR的A0,所以2440发出(555hUBOOT怎么操作?往地址AAAH写AAH mw.w aaa aa原创 2013-10-15 23:06:01 · 1381 阅读 · 1 评论 -
韦东山视频实验之触摸屏
在触摸屏实验里遇到的问题:1. 在加载模块时,就会出现采样数据 # insmod ts.ko input: s3c2440_touch_screen as /devices/virtual/input/input0init touch screen input devpen downadc_irq cnt = 0, x = 10, y = 543adc_irq cn原创 2013-09-14 21:15:15 · 1777 阅读 · 0 评论 -
韦东山视频之LCD驱动(Mini2440 X35)
说起这块屏幕 可真是费劲 原理图跟别人的好多不一样 时序图也是 lcd上vline 和vframe根本没有 只能通过pci和mck两个时钟进行设置还有就是不知道是uboot的原因还是友善官网提供的原理图有错 vden必须反转才能正常 先贴出自己调试好的代码#include #include #include #include #include #include #i原创 2013-09-16 11:49:18 · 4580 阅读 · 2 评论 -
韦东山视频实验之USB鼠标驱动—OOPS错误分析
先将上节的代码#if 1 usb_buffer_alloc(usbdev, len, GFP_ATOMIC, &usb_dma_buff_phys_addr); //初开始没有给bus_buff赋值,导致内核引用出现错误#else usb_buff = usb_buffer_alloc(usbdev, len, GFP_ATOMIC, &usb_dma_buff_phys_a原创 2013-09-19 01:21:51 · 2205 阅读 · 0 评论 -
定时器与中断触发次序
之前在做触摸屏实验的时候,出现定时器几乎可以同时出现,请看我在论坛发的问题当初考虑的是定时器是由中断来实现的,在今天看过内核后发现这个是错误的看一年内核的有关实现asmlinkage void __init start_kernel(void)(linux-2.6.22.6\init\Main.c) init_IRQ(); //初始化中断 ...原创 2013-09-26 13:41:17 · 2473 阅读 · 0 评论 -
字符设备驱动
遇到的问题总结如下1. memdev_init 主设备号的使用 static mem_major = MEMDEV_MAJOR; module_param(mem_major, int, S_IRUGO); 传入数据到内核,很质疑为什么这样传入?? 这里采用静态分配,一定主要不能跟现有设备号重复,否则加载之后,会出现卸载不掉模块的情况 rmmod: re原创 2013-06-30 00:37:00 · 812 阅读 · 0 评论 -
浅谈Linux下select/poll模型
在windows,管理I/O套接字的模型有阻塞和非阻塞两类,linux也一样windows select模型在widows下提供了众多非阻塞的I/O模型,如select、WSAAsyncSelect、WSAEventSelect、overlapped、completion port其中IO completion port(IOCP)提供了较好的伸缩性,应用比较广泛,说明:而sele原创 2013-07-03 09:29:05 · 1453 阅读 · 0 评论