Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android 的 Linux内核

Android 的 Linux内核

从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍 Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于支持Android平台的设备驱动,其核心驱动主要包括:Android Binder,基于OpenBinder框...
Linux DM9000网卡驱动程序完全分析

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

说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。本文分成以下几个部分: 一、Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系。 二、两个重要的结构体介绍:sk...
学习笔记之Linux内核同步方法

学习笔记之Linux内核同步方法

一、程序并发执行的原因在用户空间:调度程序完全可能选择另一个高优先级的进程到处理器上执行,所以就有可能一个程序正处于临界区时被非自愿的抢占了,如果新调度的的进程随后也进入到同一个临界区,前后两个进程之间就会产生竞争。信号是异步发生的也有可能产生竞争条件。在内核空间:中断:中断几乎可以在任何时候异步发生,也就可能随时打断当前正在执行的代码。软中断和tasklet:内核能在任何时候唤醒或调度软中断和tasklet,打断当前正在执行的代码。内核抢占:因为内核可以...
Linux设备模型之platform_device和platform_driver

Linux设备模型之platform_device和platform_driver

在《Linux设备模型分析之基本数据结构》一文中我分析了kobject,kset,device,device_driver等构成Linux设备模型的重要数据结构。但在分析Linux内核代码时这些原始数据结构大多被platform_device和platform_driver所封装代替,下文采用at91sam9260开发板提供的Linux2.6.19内核,剖析platform_device和platform_driver的使用。首先来看这两个结构体的定义,都...
Linux设备模型分析之基本数据结构

Linux设备模型分析之基本数据结构

Linux随着硬件设备的发展及内核版本的演进,设备模型也变得越来月复杂,早先看了《Linux设备驱动程序》觉得一头雾水,又看了许多资料和高手的帖子,总算有了一定认识,下面写出来和Linux内核爱好者分享一下。 本文相配套的《Linux设备驱动程序》下载在http://www.linuxidc.net/thread-2029-1-1.html 共3卷,17M。一、底层数据结构:kobject 和 kset1、kobject内核对象:Linux2.6设备模型的...
Linux:主设备号和次设备号

Linux:主设备号和次设备号

Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。 一个字符设备或者块设备都有一个主设备号和次设备号。主设备号...
第一个Linux驱动-s3c6410 gpio

第一个Linux驱动-s3c6410 gpio

前段时间学着写了第一个linux下的驱动,很简单,基于友善之臂的tiny6410,通过控制GPIOK4-7输入输出来控制板上的4个led。led的驱动友善已经提供,不过我自己写的有些不一样,是按照标准的char驱动来写的,下面是全过程。注意:此代码基于友善之臂提供的已经移植好的linux2.6.36核心第一步编写驱动代码//tiny6410_gpio.c#include <linux/miscdevice.h>#include <linu...
Linux网络编程UDP过程遇到的问题记录

Linux网络编程UDP过程遇到的问题记录

几天来写的代码,一经测试,竟然最基本的练级都没有成功。甚是失望~整了两天的时间终于解决了该些问题。现在记录下来。first of all,关于sendto()和recvfrom()的参数问题。recvfrom()的最后的一个参数lenth是指针整型的,而sendto()是普通整形,看了那么长时间的书竟然刚发现这个问题,甚是汗颜。如果在这两个参数错误,perror()会提示“address error”。sencondly,关于ip地址的表示。格式:“x.x...
嵌入式开发板与PC串口传输文件

嵌入式开发板与PC串口传输文件

目标板与主机pc传输文件问题,可以使用linux的工具lrzsz 工具,交叉编译后把 lrz lsz 传输到目标版的bin目录下,然后在想要接受文件的目录下运行lrz :比如 cd /tmp 在tmp目录下运行lrz 则接受到的文件就放在tmp下。 我的串口传输用kermit 所以需要在运行先设置一下kermit的配置 在/home/richard/.kermit 文件中写道:set line /dev/ttyUSB0set speed 115200se...
Linux Shell 编程笔记

Linux Shell 编程笔记

其实作为命令语言交互式地解释和执行用户输入的命令只是shell功能的一个方面,shell还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中的批处理文件,称为shell script,又叫shell程序或shell命令文件。1.shell基本语法shell的基本语法主要就是如何输入命令运行程序以及如何在程序之间通过shell的一些参数提供便利手段来进行通讯。(1)输入输出重定向在Linux中,每一个进...
Android下耳机HOOK键功能开发

Android下耳机HOOK键功能开发

目前大多数耳机线上,都有一个key,可以用来接听电话、解决电话、FM换台等功能,那么在Android平台上怎么实现呢?首先得解决Linux kernel里驱动的问题,headset的这个key在硬件上一般都会连接到SOC的GPIO上,或者变相接到GPIO上,所谓变相就是不直接连接,而是通过codec内部产生一个中断给SOC的GPIO,codec有自己GPIO的可以将此GPIO直接连到SOC的GPIO,但是这两种方案有很大区别,方案一直接连SOC的GPIO的...
Android 开发手记之NDK 编程实例

Android 开发手记之NDK 编程实例

在 Android 上,应用程序的开发,大部分基于 Java 语言来实现。要使用 c 或是 c++ 的程序或库,就需要使用 NDK 来实现。 NDK 是 Native Development Kit 的简称。它是一个工具集,集成了 Android 的交叉编译环境,并提供了一套比较方便的 Makefile ,可以帮助开发者快速开发 C 或是 C++ 的动态库,并自动的将 so 和 java 程序打包成 apk ,在 Android 上运行。好,闲话少说,我们...
<< 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 >>