自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Seal--学海无涯

嵌入式 Linux Android 内核 驱动

  • 博客(225)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux LCD驅動架構學習(三)

Linux LCD驅動架構學習(三)帧缓冲设备的用户空间访问通过/dev/fbns,应用程序可进行的针对帧缓冲设备的操作主要有如下几种。 1、读/写 dev/fbn:相当于读/写屏幕缓冲区。例如用 cp /dev/fb0 tmp 命令可将当前屏幕的内容复制到一个文件中,而命令 cp tmp > /dev/fb0 则将图形文件tmp 显示在屏幕上。2、映射操作:对于帧缓冲设备,可通过

2013-08-19 20:15:32 1643

原创 Linux LCD驅動架構學習(二)

Linux LCD驅動架構學習(二)Linux 帧缓冲设备驱动结构 下图所示为 Linux 帧缓冲设备驱动的主要结构,帧缓冲设备提供给用户空间的file_operations 结构体由 fbmem.c 中的 file_operations 提供,而特定帧缓冲设备 fb_info结构体的注册、注销以及其中成员的维护,尤其是 fb_ops 中成员函数的实现则由对应的 xxxfb.c 文件实现,

2013-08-19 20:07:10 1988

原创 Linux LCD驅動架構學習(一)

Linux LCD驅動架構學習(一)LCD 硬件原理 利用液晶制成的显示器称为 LCD,依据驱动方式可分为静态驱动、简单矩阵驱动以及主动矩阵驱动 3 种。其中,简单矩阵型又可再细分扭转向列型(TN)和超扭转式向列型(STN)两种,而主动矩阵型则以薄膜式晶体管型(TFT)为主流。表18.1 列出了 TN、STN 和 TFT 显示器的区别。TN 型液晶显示技术是 LCD 中

2013-08-19 19:38:36 2882 1

原创 Framebuffer驱动程序框架 skeletonfb.c 分析

Framebuffer驱动程序框架 skeletonfb.c 分析最近想好好研究一下lcd驱动开发过程,lcd驱动开发主要就是framebuffer的编写了,这里只要想做framebuffer驱动的开发可能这里是必经之路,因为这里这个skeletnfb.c是framebuffer驱动程序开发的骨架,他没有具体去实现任何功能,没有针对任何设备,但是,他的作用却十分惊人,他就是使用说明文档一样,教

2013-08-10 10:52:32 3315 1

原创 Linux网络设备驱动架構學習(三)

Linux网络设备驱动架構學習(三)接下來會從以下幾個方面介紹網絡設備驅動的編寫流程:1、網絡設備的註冊與註銷2、網絡設備的初始化3、網絡設備的打開與釋放4、網絡數據發送流程5、網絡數據接收流程6、網絡連接狀態7、網絡參數設置和統計數據瞭解了這幾部份內容,網絡設備驅動的編寫方法也就基本明白了網絡數據發送流程Li

2013-08-09 22:39:28 2562 1

原创 Linux网络设备驱动架構學習(二)

Linux网络设备驱动架構學習(二)接下來會從以下幾個方面介紹網絡設備驅動的編寫流程:1、網絡設備的註冊與註銷2、網絡設備的初始化3、網絡設備的打開與釋放4、網絡數據發送流程5、網絡數據接收流程6、網絡連接狀態7、網絡參數設置和統計數據瞭解了這幾部份內容,網絡設備驅動的編寫方法也就基本明白了網絡設備的註冊與註銷网络设备驱动的注册与注销使用成对出现的r

2013-08-09 16:04:14 1672

原创 Linux网络设备驱动架構學習(一)

Linux网络设备驱动架構分析()Linux 网络设备驱动的结构 Linux 网络设备驱动程序的体系结构如下图所示,从上到下可以划分为 4 层,依次为网络协议接口层、网络设备接口层、提供实际功能的设备驱动功能层以及网络设备与媒介层,这 4 层的作用如下所示。 1、 网络协议接口层向网络层协议提供统一的数据包收发接口,不论上层协议为ARP 还是 IP,都通过 dev_queue_xmit

2013-08-09 15:29:08 3169

原创 Linux內核中常用的一些延時方法

Linux內核中常用的一些延時方法這些方法在以下路徑下定義:kernel/include/linux/delay.h#ifndef _LINUX_DELAY_H#define _LINUX_DELAY_H/* * Copyright (C) 1993 Linus Torvalds * * Delay routines, using a pre-computed "loops_p

2013-08-09 10:32:16 1604

原创 Mini2440 DM9000 驱动分析(四)

Mini2440 DM9000 驱动分析(四)net_device_ops中方法的相应说明/* * This structure defines the management hooks for network devices. * The following hooks can be defined; unless noted otherwise, they are * opt

2013-08-07 18:28:17 1950

转载 INIT_WORK和INIT_DELAYED_WORK详解

INIT_WORK和INIT_DELAYED_WORK详解朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是指对初始条件敏感性的一种依赖现象.蝴蝶效应的原因在于蝴蝶翅膀的运动,导致其身边的空气系统发生变化,并引起微弱气流的产生,而微弱气流的产生又

2013-08-06 20:20:26 2036 1

原创 Mini2440 DM9000 驱动分析(三)

Mini2440 DM9000 驱动分析(三)现在开始逐步分析dm9000驱动的probe方法具体过程见代码中添加的注释/* * Search DM9000 board, allocate space and register it */static int __devinitdm9000_probe(struct platform_device *pdev){ struc

2013-08-06 20:18:22 1983 1

原创 Mini2440 DM9000 驱动分析(二)

Mini2440 DM9000 驱动分析(二)在真正的开始分析dm9000 driver的probe之前,首先来看看dm9000 驱动中几个十分重要的结构1、dm9000_driverstatic struct platform_driver dm9000_driver = { .driver = { .name = "dm9000", .owner = THIS_M

2013-08-06 19:07:00 1411

原创 Mini2440 DM9000 驱动分析(一)

Mini2440 DM9000 驱动分析(一)硬件特性Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系:PW_RST 连接到复位按键,复位按键按下,低电平触发重新初始化,初始化完成后5us后可以使用(The DM9000 is ready after 5us when this pin deasserted )CMD 连接到s3c24

2013-08-03 16:44:00 2015

转载 Linux网卡驱动程序编写

Linux网卡驱动程序编写工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术和应用,促进Linux在中国的普及。Linux操作系统网络驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linu

2013-08-03 14:40:21 6917

转载 mini2440 dm9000 网卡驱动详解 (三)

mini2440 dm9000 网卡驱动详解 (三)*dm9000_get_drvinfo()     该函数去的设备的基本信息(设备名,版本,总线名)传给ethtool_drvinfo结构体变量。代码清单如下:  [cpp] view plaincopystatic void dm9000_get_d

2013-07-31 19:28:00 1361

转载 mini2440 dm9000 网卡驱动详解 (二)

mini2440 dm9000 网卡驱动详解 (二)3. platform_driver的remove, suspend和resume的实现       remove函数的功能是把设备从内核中移除,释放内存区域。该函数在卸载模块时被调用。代码清单如下: [cpp] view plaincopystatic int __

2013-07-31 19:26:42 1197 2

转载 mini2440 dm9000 网卡驱动详解 (一)

mini2440 dm9000 网卡驱动详解 (一)虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。 本文分成以下几个部分:一、Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系。

2013-07-31 19:16:19 1667

转载 android binder机制之--(创建binder服务)

android binder机制之--(创建binder服务)Binder机制编程        前面的几篇文章详细介绍了android中binder机制的方方面面,相信你对binder机制已经有了较深刻的理解。俗话说得好“学以致用”,下面我们就通过在android系统中创建一个我们自己的binder服务,来加深对binder机制的理解。(1)添加新建的服务名称      

2013-07-31 15:23:18 778

转载 android binder机制之——(我是binder实例)

android binder机制之——(我是binder实例)Binder应用实例        前一篇文章我们从进程的C/C++层面讲解了binder机制的服务代理对象BpBinder的获取,和Binder底层处理方法。整个服务代理的获取过程也是binder机制的的核心内容,它涉及到了客户请求,请求的传递和处理,服务代理的生成和转换(封装)过程。当客户端获取到对应服务的代理后,就

2013-07-31 15:22:26 1012

转载 android binder机制之--(我是Server Porxy)

android binder机制之--(我是Server Porxy)服务代理对象        上一篇android binder机制之--(我是Service Manager)我们学习了Service Manager(服务管家)在Android Binder中的作用——服务(Service)注册,服务(Service)查询和获取等功能。        我们知道Service

2013-07-31 15:20:37 759

转载 android binder机制之--(我是Service Manager)

android binder机制之--(我是Service Manager)Service Manager     上篇文章android binder机制之--(我是binder)介绍了binder机制的概念,特点,应用模式和框架组成,这篇文章我们来介绍一下Android系统Binder机制的服务总管--Service Manager,service Manager在andr

2013-07-31 15:19:04 906

转载 android binder机制之--(我是binder)

android binder机制之--(我是binder)(一)什么是binder    随着android移动设备平台系统的发展,Binder机制得到越来越多人的关注的。什么是binder,总体上说,Binder是一个轻量级的IPC组件框架,binder是一个分布式的组件架构,它类似于COM和CORBA。一个叫做open-binder的开源项目,在Android的操作系统上的实现

2013-07-31 15:17:32 912

原创 CSDN core test

The test for CSDN core

2013-07-20 23:22:41 1060 1

原创 2013-07-17

菜鸟还需努力啊

2013-07-17 20:31:48 1033

原创 Linux设备驱动开发详解-Note(19)---Linux 设备驱动中的异步通知与异步 I/O(2)

Linux 设备驱动中的异步通知与异步 I/O(2)成于坚持,败于止步Linux 2.6 异步 I/O AIO 概念与 GNU C 库函数 Linux 系统中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是

2013-07-17 20:21:44 4520

原创 Linux设备驱动开发详解-Note(18)---Linux 设备驱动中的异步通知与异步 I/O(1)

Linux 设备驱动中的异步通知与异步 I/O(1)成于坚持,败于止步异步通知的概念与作用 阻塞与非阻塞访问、poll()函数提供了较好的解决设备访问的机制,但是如果有了异步通知整套机制就更加完整了。 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步 I/O”。信号是在软

2013-07-17 20:02:16 3341

原创 Linux设备驱动开发详解-Note(17)---Linux 设备驱动中的阻塞与非阻塞 I/O(2)

Linux 设备驱动中的阻塞与非阻塞 I/O(2)成于坚持,败于止步轮询操作 轮询的概念与作用 在用户程序中,select()和 poll()也是与设备阻塞与非阻塞访问息息相关的论题。使用非阻塞 I/O 的应用程序通常会使用 select()和 poll()系统调用查询是否可对设备进行无阻塞的访问。select()和 poll()系统调用最终会引发设备驱动中的 poll()函数被执

2013-07-17 19:32:08 2483

原创 Linux设备驱动开发详解-Note(16)---Linux 设备驱动中的阻塞与非阻塞 I/O(1)

Linux 设备驱动中的阻塞与非阻塞 I/O(1)成于坚持,败于止步阻塞与非阻塞 I/O阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。 驱动程序通常需要提供这

2013-07-17 19:22:41 2810 1

原创 Linux设备驱动开发详解-Note(15)--- Linux 设备驱动中的并发控制(2)

Linux 设备驱动中的并发控制(2)成于坚持,败于止步信号量信号量的使用 信号量(semaphore)是用于保护临界区的一种常用方法,它的使用方式和自旋锁类似。与自旋锁相同,只有得到信号量的进程才能执行临界区代码。但是,与自旋锁不同的是,当获取不到信号量时,进程不会原地打转而是进入休眠等待状态。 Linux 系统中与信号量相关的操作主要有如下 4 种。 1.定义信号量

2013-07-17 18:59:04 2752

原创 Linux设备驱动开发详解-Note(14)--- Linux 设备驱动中的并发控制(1)

Linux 设备驱动中的并发控制(1)成于坚持,败于止步并发与竞态 并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions)。例如,对于 globalmem 设备,假设一个执行单元 A 对其写入 3000个字符“a”,而另一个执行单元 B 对其写

2013-07-16 19:58:04 3832 1

原创 Linux设备驱动开发详解-Note(13)--- 字符设备驱动(2)

字符设备驱动(2)成于坚持,败于止步globalmem程序源码#include #include #include #include #include #include #include #include #include #include #include #include #define GLOBALMEM_SIZE 0x1000 /*4KB*/#d

2013-07-16 18:48:01 3409

原创 Linux设备驱动开发详解-Note(12)--- 字符设备驱动(1)

字符设备驱动(1)成于坚持,败于止步Linux 字符设备驱动结构 cdev 结构体 在 Linux 2.6 内核中使用 cdev 结构体描述字符设备,cdev 结构体的定义如代码所示。1 struct cdev 2 { 3 struct kobject kobj; /* 内嵌的 kobject 对象 */ 4 struct module *owner

2013-07-10 22:46:09 4924

原创 Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)

Linux 文件系统与设备文件系统(3)成于坚持,败于止步sysfs 文件系统与 Linux 设备模型 1.sysfs 文件系统 Linux 2.6 内核引入了 sysfs 文件系统,sysfs 被看成是与 proc、devfs 和 devpty 同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,与提供进程和状态信息的 proc 文件系

2013-07-10 20:18:37 4050

原创 Linux设备驱动开发详解-Note(10)--- Linux 文件系统与设备文件系统(2)

Linux 文件系统与设备文件系统(2)成于坚持,败于止步Linux 文件系统目录结构 进入 Linux 根目录(即“/”,Linux 文件系统的入口,也是处于最高一级的目录),运行“ls –l”命令,可以看到 Linux 系统包含以下目录。 1./bin 包含基本命令,如 ls、cp、mkdir 等,这个目录中的文件都是可执行的。 2./boot Linux 系统

2013-07-09 20:07:23 5497

原创 Linux设备驱动开发详解-Note(9)--- Linux 文件系统与设备文件系统(1)

Linux 文件系统与设备文件系统(1)成于坚持,败于止步文件操作的相关系统调用 Linux 的文件操作系统调用(在 Windows 编程领域,习惯称操作系统提供的接口为 API)涉及创建、打开、读写和关闭文件。 1.创建 int creat(const char *filename, mode_t mode); 参数 mode 指定新建文件的存取权限,它同 umask

2013-07-09 19:22:24 4110

原创 Linux设备驱动开发详解-Note(8)---Linux 内核模块(2)

Linux 内核模块(2)模块加载函数 Linux 内核模块加载函数一般以_ _init 标识声明,典型的模块加载函数的形式如代码所示: 1 static int _ _init initialization_function(void) 2 { 3 /* 初始化代码 */ 4 } 5 module_init(initialization_funct

2013-07-08 19:33:52 3895

原创 Linux设备驱动开发详解-Note(7)---Linux 内核模块(1)

Linux 内核模块(1)Linux 内核模块简介 Linux 内核的整体结构非常庞大,其包含的组件也非常多。我们怎样把需要的部分都包含在内核中呢? 一种方法是把所有需要的功能都编译到 Linux 内核。这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核。 有没有一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功能需要

2013-07-08 19:01:43 4444

原创 Linux设备驱动开发详解-Note(6)---Linux 内核及内核编程(2)

Linux 内核及内核编程(2)Linux 下的C编程举例零长度数组 GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用。例如: struct var_data { int len; char data[0]; }; char data[0]仅仅意味着程序中通过 var_data 结构体实例的 data[index]成员可以访问 len 之后

2013-07-08 18:39:33 4417 1

原创 Linux设备驱动开发详解-Note(5)---Linux 内核及内核编程(1)

Linux 内核及内核编程(1)Linux 2.6 内核的特点 Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面。 1.新的调度器 2.6 版本的 Linux 内核使用了新的进程调度算法,它在高负载的情况下执行得极其出色,并且当有很多处理器时也可以很好地扩展。 2.内核抢占 在 2.6 版本的 Linux 内核中,内核任务可以被抢占,从

2013-07-08 18:02:10 5817 4

原创 Linux设备驱动开发详解-Note(4)---驱动设计的硬件基础(2)

驱动设计的硬件基础(2)接口与总线 串口 RS-232、RS-422 与 RS-485 都是串行数据接口标准,最初都是由电子工业协会(EIA)制定并发布的。 RS-232 在 1962 年发布,命名为 EIA-232-E。之后发布的 RS-422 定义了一种平衡通信接口,它是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。RS-422 改进了 RS

2013-07-08 16:27:00 5197

etc.tar.gz

etc目录,用于构建文件系统时直接使用,省去额外花费时间去编辑

2013-06-21

busybox-1.13.3

busybox-1.13.3,构建文件系统工具

2013-06-21

u-boot-2010.03-tekkaman-master

u-boot-2010.03-tekkaman-master,完整移植版本,方便初学者学习

2013-06-21

C语言接口与实现

C语言接口与实现,深入學習c語言開發,適用於中級開發人員,更上一個臺階!!

2012-10-09

ARM开发工程师入门宝典

ARM开发工程师入门宝典,深入淺出講解arm基礎知識!!很好。很有幫助

2012-10-09

空空如也

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

TA关注的人

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