自定义博客皮肤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 内核 驱动

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

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

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

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

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

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

2013-07-17 20:02:16 3342

原创 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 2811 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 3833 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 4052

原创 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 5818 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 5200

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

驱动设计的硬件基础(1)处理器分类不做过多说明,处理器类型很多,大同小异存储器存储器可分为只读储存器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光介质存储器和磁介质存储器。ROM 还可再细分为不可编程 ROM、可编程 ROM(PROM)、可擦除可编程 ROM(EPROM)和电可擦除可编程 ROM(E2PROM),E2PROM 完全可以用软件来擦写,已经

2013-07-08 15:38:08 6234 1

原创 Linux设备驱动开发详解-Note(2)---设备驱动概述(2)

设备驱动概述(2)Linux 设备驱动设备的分类及特点 计算机系统的硬件主要由 CPU、存储器和外设组成。随着 IC 制造工艺的发展,目前,芯片的集成度越来越高,往往在 CPU 内部就集成了存储器和外设适配器。ARM、PowerPC、MIPS 等处理器都集成了 UART、I2C 控制器、USB 控制器、SDRAM 控制器等,有的处理器还集成了片内 RAM 和 Flash。 驱动针对

2013-07-08 15:12:10 6390

原创 Linux设备驱动开发详解-Note(1)---设备驱动概述(1)

设备驱动概述(1)设备驱动的作用 任何一个计算机系统的运行都是系统中软硬件协作的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑;软件则实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。硬件较固定,软件则很灵活,可以适应各种复杂多变的应用。可以说,计算机系统的软硬件互相成就了

2013-07-08 14:48:31 9579 5

原创 life of progress to myself

不经意之间回望来路,在这个新环境也已经这么久了,时间过得真快。每天接触到的都是新东西,除了偶尔的纠结之外,总体来说生活还是很丰富的,旁边的各位大牛不断让我有新的惊叹,经常羡慕他们已经走过了像我这样小菜鸟的纠结的痛苦的阶段,但我也明白知识都是一点点积累起来的,在这一刻的付出,在将来的某一刻一定会得到回报,有的时候,不是看到了希望再去坚持,而是在坚持中看到了希望。走在黑暗中摸索的过程,我不知道下一刻会

2013-07-02 18:50:17 1005

原创 Daily-C-Study(24):C语言内存管理

Daily-C-Study(24):C语言内存管理成于坚持,败于止步欢迎您进入这片雷区。我欣赏能活着走出这片雷区的高手,但更欣赏“粉身碎骨浑不怕,不留地雷在人间”的勇者。请您不要把这当作一个扫雷游戏,因为没有人能以游戏的心态取胜。把它称作雷区,赞一个,O(∩_∩)O~那到底什么是野指针呢?怎么去理解这个“野”呢?我们先看别的两个关于“野”的词:野孩子:没人要,没人管的孩

2013-07-01 20:26:59 3600 1

原创 内核参数module_param的有关操作

内核参数module_param的有关操作定义一个内核参数比较简单module_param(参数变量名字,类型,访问权限)MODULE_PARM_DESC(参数变量名字,“参数说明描述”)如果需要限制或者检查用户输入的参数的值,比如说限制输入的整型数是 256~512的某个范围等等,输入的一定是某个特定字符串等。那么可以用这个宏。这个支持你传进去一个参数处理的回调函数。modu

2013-07-01 10:10:42 10863

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关注的人

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