- 博客(19)
- 资源 (8)
- 收藏
- 关注
原创 android4.2添加重启菜单项
A.关机提示android4.2/frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java private void handleShow() { awakenIfNecessary(); mDialog = creat
2014-08-26 17:19:43 2875
原创 自己动手写最简单的bootloader
首先我们必须要知道,一开始我们的开发板上电的时候, 如果我们的板子是从norflash启动的,那么硬件会从nandflash拷贝其前4k的代码到内部RAM中, (这也是为什么我们的bootloader第一阶段需要在4k内),如果是norflash启动,那也是从norflash把前4k代码复制到内部RAM中我们知道mini2440有个看门狗,如果说我们不能够定时去喂狗, 那么
2012-09-29 00:52:16 5060
转载 Linux DM9000网卡驱动程序完全分析
说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。本文分成以下几个部分: 一、Mini2440开发板上DM9000的电
2012-09-29 00:07:57 764
原创 i2c实例讲解
如果对i2c设备驱动不了解的, 请先看这里的简单的驱动i2c识别:http://blog.csdn.net/zhutoubenben/article/details/8003781#define DRIVER_LICENSE "GPL"#define DRIVER_AUTHOR "zhutoubenben"#define DRIVER_DESC "i i c iic_at24c
2012-09-22 16:02:26 1945
原创 Linux I2C设备驱动分析 基于2440 2.6.32内核
首先呢, linux的i2c主要有三层:i2c核心层 i2c总线层 i2c设备层i2c核心是内核为我们提供的, 它主要的作用就是提供了i2c总线驱动中的适配器(adapter)和运算方法(algorithm)还有i2c设备驱动的注册, 撤销方法 探测设备和设备地址的上层代码等由于它是内核提供的,那么我们要做的的驱动呢, 分为两块, 一个就是i2c总线的驱动 另一个就是i2
2012-09-22 00:37:32 1750
转载 Linux设备驱动程序之中断(下半部机制)
啥叫中断?就是指cpu在执行过程中,出现了某些突发事件时CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU有返回原程序被中断的位置并继续执行。 中断的分法不懂,分类就不同,向什么内外部中断,可/不可屏蔽中断…等等乱七八糟一大堆,我这里要说明的一点是按照中断入口跳转方法的不同,可分为向量中断和非向量中断。采用向量中断的CPU通常为不同的中断分配不同的中断号,当检测到某中断号的
2012-09-22 00:31:18 760
转载 linux设备驱动中的并发控制
并发与竞态 解决竞态问题的途径是保证对共享资源的互斥访问。访问共享资源的代码区域称为临界区,临界区需要以某种互斥机制加以保护。中断屏蔽、原子操作、自旋锁和信号量等是Linux设备驱动中可采用的互斥途径。中断屏蔽 中断屏蔽将使得中断与进程之间的并发不再发生,而且,由于Linux内核的进程调度等操作都依赖中断来实现,内核抢占进程之间的并发也就得以避免了。但是,需要注意是的是
2012-09-22 00:05:41 425
原创 驱动usb鼠标产生键盘信息
实际上跟我之前写的简单的usb鼠标驱动分析 这个驱动的区别在于, 输入子系统向input core提交不同的信息, 这样就会有不同的消息输出了, 也就是我们把鼠标按键提交的信息改为 键盘按键的信息, 这样就写完了....具体代码如下:#include #include #include #include #include #include #defin
2012-09-19 23:29:13 900
原创 简单的usb鼠标驱动分析
如果没有看过 : 驱动usb鼠标识别 建议先看看下面主要是分析了usb识别后的操作#include#include #include #include #include #include #define DRIVER_LICENSE "GPL"#define DRIVER_AUTHOR "zhutoubenben"#define DRIVER_DES
2012-09-19 19:53:23 970
转载 编写 USB 驱动程序(四)
编写 USB 驱动程序(本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序)驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装.驱动的设备支持列表struct usb_device_id 结构提供了这
2012-09-19 13:33:25 919
原创 驱动usb鼠标识别
废话不说,先贴代码:#include #include #include #include #include #include #define DRIVER_LICENSE "GPL"#define DRIVER_AUTHOR "same"#define DRIVER_DESC "u s b probe..."MODULE_AUTHOR(DRIVER_A
2012-09-19 10:37:53 1004
转载 Linux设备驱动程序学习-USB 驱动程序(一)
内核使用2.6 拓扑结构上, 一个 USB 子系统并不是以总线的方式来分布; 它是一棵由几个点对点连接构成的树。这些连接是连接设备和集线器的4线电缆(地, 电源, 和 2 个差分信号线), 如同以太网的双绞线。USB主控制器负责询问每个USB设备是否有数据需要发送。由于这个拓扑结构,一个 USB 设备在没有主控制器要求的情况下不能发送数据. 也就是说:USB是单主方式的
2012-09-18 23:57:31 635
转载 Linux-USB学习 -- 基本知识(一)
USB的重要关键字:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。3、上行、下行:设备到主机为上行,主机到设备为下
2012-09-18 23:55:20 527
原创 lcd驱动的fb_read函数分析
staticssize_t fb_read(structfile*file,char__user *buf,size_t count,loff_t *ppos){ unsigned long p = *ppos; struct inode *inode = file->f_dentry->d_inode; int fbidx = imi
2012-09-15 20:25:44 1360
转载 Linux内核访问外设I O资源的方式
首先介绍一下I/O端口和I/O内存。1. I/O端口:当一个寄存器或内存位于I/O空间时,称其为I/O端口。2. I/O内存:当一个寄存器或内存位于内存空间时,称其为I/O内存。再来看一下I/O寄存器和常规内存的区别:I/O寄存器具有边际效应(side effect),而内存操作则没有,内存写操作的唯一结果就是在指定位置存贮一个数值;内存读操作则仅仅是返回指定位置最后一次写入的数值。何
2012-09-12 21:56:20 1316
原创 platform设备和驱动注册调用probe的流程
Linux platform driver机制和传统的device driver机制(即:通过driver_register函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中用使用这些资源时,通过platform device提供的标准接口进行申请并使用。 platform是一个虚拟的地址总线,相比PCI
2012-09-10 16:40:40 1379
原创 qt获取输入中的中文
这天需要获取在QTextEdit输入的中文, 于是采用事件过滤器,在textedit上面输入中文,再把event->type()输出,去查找对应的事件号,最后发现是QEvent::InputMethod,于是果断查了下QInputMethodEvent,发现它能够获得中文输入法中输出的字符串和正在编辑的字,下面给出例子:bool MyTextEdit::eventFilter(QObject
2012-08-26 01:19:27 2965
原创 自己的os---boot.s引导扇区运行在bochs上
1. 首先安装bochs(注意要全部安装,这样有个自带的dlxlinux范例,到时候只需要在这个上面修改一部分就能够直接用了)2. (在linux系统中)安装as86和ld86这是早期MINIX的编译器(安装包名字bin86-0.16.0-2.i586.rpm)3. 照着Linux内核完全剖析(基于0.12内核)的31页将启动代码打上!!!!! 代码 如
2012-06-18 14:42:15 786
转载 Linux 定时器设置
定时器设置函数alarm设置的定时器只能精确到秒,而以下函数理论上可以精确到微妙:#include #include int getitimer(int which, struct itimerval *value);int setitimer(int which, const struct itimerval *value,struct itimerval
2012-04-29 10:56:47 458
HDMI TO MIPI Hdmi转mipi TC358870硬件设计和软件以及配置表LT6911方案
2020-12-07
LT8619C驱动代码_LT8618EXB_EVB_HDMI_带解释hdmi转lvds hdmi转bt1102 bt656.zip
2020-09-25
N116BGE-l32 datasheet
2017-11-09
vlc android eclipse 工程
2015-02-04
android的google串口源码_保证可用
2013-01-05
自己写的bootloader
2012-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人