自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 2874

原创 自己动手写最简单的bootloader

首先我们必须要知道,一开始我们的开发板上电的时候, 如果我们的板子是从norflash启动的,那么硬件会从nandflash拷贝其前4k的代码到内部RAM中, (这也是为什么我们的bootloader第一阶段需要在4k内),如果是norflash启动,那也是从norflash把前4k代码复制到内部RAM中我们知道mini2440有个看门狗,如果说我们不能够定时去喂狗, 那么

2012-09-29 00:52:16 5056

转载 Linux DM9000网卡驱动程序完全分析

说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。本文分成以下几个部分: 一、Mini2440开发板上DM9000的电

2012-09-29 00:07:57 763

原创 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 1941

原创 Linux I2C设备驱动分析 基于2440 2.6.32内核

首先呢, linux的i2c主要有三层:i2c核心层 i2c总线层  i2c设备层i2c核心是内核为我们提供的, 它主要的作用就是提供了i2c总线驱动中的适配器(adapter)和运算方法(algorithm)还有i2c设备驱动的注册, 撤销方法 探测设备和设备地址的上层代码等由于它是内核提供的,那么我们要做的的驱动呢, 分为两块, 一个就是i2c总线的驱动 另一个就是i2

2012-09-22 00:37:32 1749

转载 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 969

转载 编写 USB 驱动程序(四)

编写 USB 驱动程序(本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序)驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装.驱动的设备支持列表struct usb_device_id 结构提供了这

2012-09-19 13:33:25 915

原创 驱动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 634

转载 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 1315

原创 platform设备和驱动注册调用probe的流程

Linux platform driver机制和传统的device driver机制(即:通过driver_register函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中用使用这些资源时,通过platform device提供的标准接口进行申请并使用。        platform是一个虚拟的地址总线,相比PCI

2012-09-10 16:40:40 1376

原创 qt获取输入中的中文

这天需要获取在QTextEdit输入的中文, 于是采用事件过滤器,在textedit上面输入中文,再把event->type()输出,去查找对应的事件号,最后发现是QEvent::InputMethod,于是果断查了下QInputMethodEvent,发现它能够获得中文输入法中输出的字符串和正在编辑的字,下面给出例子:bool MyTextEdit::eventFilter(QObject

2012-08-26 01:19:27 2962

原创 自己的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方案

Hdmi转mipi方案TC358870XBG硬件设计和软件以及配置表配置软件,TC358870XBG datasheet;LT6911方案硬件设计和软件; 里面包含了两种方案

2020-12-07

LT8619C驱动代码_LT8618EXB_EVB_HDMI_带解释hdmi转lvds hdmi转bt1102 bt656.zip

LT8619C_LT8618EXB ,最大支持4k@30, hdmi 输入转lvds hdmi转bt1102 bt656 LT8619C驱动代码,并且里面有很多的解释,用法比较简单,修改里面的宏即可。亲测驱动代码非常好用有效!

2020-09-25

N116BGE-l32 datasheet

N116BGE-l32 datasheet,LVDS显示屏datasheet,N116BGE-l32 datasheet,LVDS显示屏datasheet

2017-11-09

M215HJJ-L30 datasheet

群创LCD M215HJJ-L30的datasheet,非常好用,lvds专用屏幕,1920x1080 , 21.5寸

2017-10-10

eclipse工程简单调用vlc接口播放视频

eclipse工程简单调用vlc接口播放视频

2015-02-04

vlc android eclipse 工程

vlc android eclipse 工程 http://blog.csdn.net/zhutoubenben/article/details/43488187

2015-02-04

android的google串口源码_保证可用

android的google串口源码_保证可用 找了很久的google串口源码,发现导入的时候竟然不能直接用,估计是我的adt版本太低了,于是我重建了工程 保证可用,也有可执行程序在里面. 兼容各个版本的android,简单好用!

2013-01-05

自己写的bootloader

自己写的bootloader, 实现串口打印, 读nandflash, 启动内核, 注意不支持写nandflash.... 本人博客文档:http://blog.csdn.net/zhutoubenben/article/details/8030291

2012-09-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除