自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

转载 android boot.img 结构

android 的boot.img 包括 boot header,kernel, ramdisk首先来看看Makefile是如何产生我们的boot.img的:boot镜像不是普通意义上的文件系统,而是一种特殊的Android定制格式,由文件头信息boot header,压缩的内核,文件系统数据ramdisk以及second stage loader(可选)组成,它们之间非页面对齐部

2014-04-28 22:34:11 604

转载 Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)

考了前人的成果,结合自己实践,arm-linux-gcc-4.4.3.tar.gz的下载地址为:http://ishare.iask.sina.com.cn/f/13836544.html?from=like本人所用系统是Ubuntu12.04,但只要是Ubuntu应该都可以安照此步骤安装。1.解压文件解压 tar zxvf arm-linux-gcc-4.4.3.

2014-04-25 14:30:48 2215 1

转载 功能强大的查找命令:find

find命令能够按多种方式指定查询条件,然后进行查询出指定的文件。说明:因为find命令功能强大,而且能够设定查询条件,里面涉及的权限和文件类型的相关知识,所以大家可以在学完相应的章节后再来学习find命令。find命令的执行方式:# find 查找的路径 [选项] [对查询到结果执行的命令]find命令能够按照用户给定的条件进行查找,并

2014-04-23 14:44:46 841

转载 adb devices no permissions

List of devices attached ???????????? no permissions   1. 查看还没有占有的文件名,这一步可以不做。udevadm test /class/usb  2. lsusb以下是我的输出(当前连的是ZTE R750) Bus 002 Device 007: ID 19d2:1354 ONDA Comm

2014-04-23 14:40:49 602

转载 Android之旅 -- Recovery相关原理分析

原创文章,欢迎转载,转载请注明出处http://www.cnblogs.com/becklc/archive/2012/09/24/2676600.html本文依据android2.3源码只分析Recovery相关原理,不针对代码走读,现在Android版本已经4.x.x但是recovery的基本原理不变。一、Recovery是如何构成的  说recovery的构成并不贴切,应

2014-04-23 14:11:31 900

转载 内核启动组件式初始化

在Linux内核源码中多处会看到诸如__init,__initdata,__exitdata的关键字,大部分这样的关键字定义在include/linux/init.h头文件中,它们都会在编译连接阶段被实现处理。#define __init      __section(.init.text) __cold notrace  __init标记的数据被存储在.init.text节

2014-04-23 13:47:42 970

转载 [Android]构建boot.img:root目录与ramdisk.img的生成

以TCC88XX为例,当在Android顶层源码目录使用make编译完成后,会生成这样一个目录:out/target/product/tcc8800,该目录内部有我们需要的boot.img和system.img,boot.mg使用kernel和out/target/product/tcc8800/root目录打包而成(广义的ramdisk),也就是说,boot.

2014-04-23 13:43:38 2450

转载 android boot.img 结构

android 的boot.img 包括 boot header,kernel, ramdisk首先来看看Makefile是如何产生我们的boot.img的:boot镜像不是普通意义上的文件系统,而是一种特殊的Android定制格式,由文件头信息boot header,压缩的内核,文件系统数据ramdisk以及second stage loader(可选)组成,它们之间非页面对齐部

2014-04-23 12:19:56 832

转载 android中各种img文件的作用以及系统启动过程

首先通过编译,先将android内核编译成功。正常情况下,在目录out/target.product/generic/(但是有的就没有generic文件,如freescale和iriver;但是lonshinetech下面就有这个文件,依据情况而定,只要能找到生成的三个文件就可以。例如:~/freescale/R9.2/out/target/product/imx51_bbg$ )下会生成三个文件

2014-04-23 12:12:33 1161

原创 git查看文件的修改

有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了~【注】:某个文件的改动是有限次的,而且每次代码修改的提交都会有commit描述,我们可以从这里进行入手;一、切换到目录首先切换到要查看的文件所在的目录:cd packages/apps/Mms/src/com/android/mms/ui/

2014-04-21 12:57:04 4557

转载 Linux内存管理

摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容

2014-04-21 11:03:20 665

转载 Bootargs参数解析

Bootargs参数解析mournjust因为该文章不是讲内核的C代码启动过程,所以并没有从start_kernel函数开始,首先从setup_arch 函数(/arch/unicore-linux/kernel/setup.c)函数开始,setup_arch是start_kernel内调的一个子函数:(A)在uboot中已经相应的查找了machine类型,这儿仍然是调用setup

2014-04-21 10:53:30 1713

转载 ARM Linux静态映射分析

作者:易老师,华清远见嵌入式学院讲师。在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架

2014-04-17 15:02:54 591

转载 uboot启动阶段修改启动参数方法及分析

uboot启动阶段修改启动参数方法及分析      本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织。毕竟文字跟有声语言表达有别。但愿简单的东西别让我讲的太复杂!Arm板系统文件一般有三个——bootloader(uboot)、kernel(uImage)及根文件系统(rootfs)。在arm板上电后,按uboot->kernel->ro

2014-04-16 16:25:33 737

转载 Linux对I/O端口资源的管理

摘要  本文主要从内核实现的角度分析Linux 2.4.0内核IO子系统中对IO端口资源的管理的实现原理。本文是为那些想要深入分析Linux的IO子系统的读者和设备驱动程序开发人员而写的。(2002-10-08 14:14:05)By 阿开  Copyright © 2002 by 詹荣开  E-mail:zhanrk@sohu.com  Linux-2.4.0

2014-04-14 19:02:58 1150

转载 linux内核启动地址的确定

内核编译链接过程是依靠vmlinux.lds文件,以arm为例vmlinux.lds文件位于kernel/arch/arm/vmlinux.lds,但是该文件是由vmlinux-armv.lds.in生成的,根据编译选项的不同源文件还可以是vmlinux-armo.lds.in,vmlinux-armv-xip.lds.in。vmlinux-armv.lds的生成过程在kernel/a

2014-04-14 18:59:45 2184

转载 Linux节点和内存管理区的初始化

节点和管理区是内存管理中所涉及的重要概念,其数据结构在前文《linux物理内存概述》中已经介绍,现在让我们来看看linux是如何完成节点和管理区的。       在内核首先通过setup_arch()-->paging_init()-->zone_sizes_init()来初始化节点和管理区的一些数据项[cpp] view plaincopyst

2014-04-14 13:14:37 944

转载 Linux物理内存概述

Linux可以支持大量的架构,所以需要用一种与架构无关的方式去描述内存。在linux的内存管理中,我们首先要明确的一个概念就是NUMA(Non-Uniform Memory Access,关于NUMA的介绍可以参考我前面的文章)。很多大型机器都采用NUMA架构,将内存和CPU分为很多组,每一组称为一个节点(node)。节点与节点之间的互相访问,会因为“距离”的不同导致不同的开销。Linux通过st

2014-04-14 11:36:13 628

转载 内核只使用CS1的内存启动

cpu外接两片32bit 256M的内存.默认从CS0开始的起始地址启动, 现在更改为CS1的起始地址启动.主要的修改就是PHYS_OFFSET的地址, uboot传递给内核参数的地址以及bootargs中的mem参数. CS0起始地址为 0x80000000, 大小为 256MB.  CS1起始地址为 0x90000000, 大小为 256MB.1. 修改 arch/ar

2014-04-11 16:53:51 775

转载 linux下内存的统计和内存泄露类问题的定位

在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的大小,还可以对内存泄露类问题的解决提供一种定位手段。       Linux在内存使用上的原则是:如果内存充足,不用白不用,尽量使用内存来缓存一些文

2014-04-11 15:50:17 846

转载 linux下内存大小、起始地址的解析与修改

在实际的工作中,由于产品型号的不同,经常需要调整linux所管理的内存的大小,而内核在启动阶段,会两次去解析从uboot传递过来的关于内存的信息,具体如下:一、解析从uboot传递过来的tag(在parse_tags中处理)在uboot的do_bootm_linux()函数中,会创建一系列需要传递给内核的tag,所有的tag以链表形式链接到指定的物理内存中。setup_st

2014-04-11 12:01:20 1364

转载 Android的WiFi子系统架构

本文部分内容修正自《Androd系统原理及开发要点详解》,部分内容为原创! 前言:最近项目中要实现几个与WiFi相关的机能:WPS,WiFI proxy,Airplane Mode相关的小机能等。我借着这次机会,对Android的WiFi框架进行了一下学习,对其有一个初步的了解。所以特地整理了出来,以备与各位探讨,并欢迎指教。 一、WiFi基本框架Android的WiFi系

2014-04-10 11:27:40 1169

转载 wpa_supplicant 初始化流程分析

1. 启动命令 wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txtwpa_supplicant对于启动命令带的参数

2014-04-10 11:17:04 548

转载 wifi 流程

Wifi 连接部分  当用户选择一个AP时会弹出一个AP参数配置对话框,此对话框会显示当前选择的AP信号强度,若此AP设置了密码则需要用户输入密码才能登录。WifiSettings中的 onPreferenceTreeClick会被调用          @Override    public boolean onPreferenceTreeClick(PreferenceScre

2014-04-10 11:16:00 686

转载 android wifi工作流程

Wifi 网卡状态1.    WIFI_STATE_DISABLED: WIFI网卡不可用2.    WIFI_STATE_DISABLING: WIFI正在关闭3.    WIFI_STATE_ENABLED:WIFI网卡可用4.    WIFI_STATE_ENABLING:WIFI网卡正在打开5.    WIFI_STATE_UNKNOWN:未知网卡状态 WI

2014-04-10 11:12:00 650

转载 android wifi驱动开发日记

学习android wifi开发已经一周了,今天开始立帖,将每天的学习成果贴出来,以备以后查阅,从framework到wpa_supplicant的适配层(wifi.c)网上介绍的帖子很多,而且本身也并不复杂,其中framework部分需要注意的是wifiService和wifiMoniter两部分,这两快一个是转发AP的CMD另一个是接收来自wpa_supplicant的CMD。他们与本地库的连

2014-04-10 11:00:21 943

转载 WIFI驱动设计原理

初始化在 SystemServer 启动的时候,会生成一个 ConnectivityService 的实例,             try {                   Log.i(TAG, "Starting Connectivity Service.");                   ServiceManager.addService(Context.CON

2014-04-10 10:49:28 667

转载 Linux3.4内核Nand Flash驱动的移植

作者:李老师,华清远见嵌入式学院讲师。【实验目的】Nand flash 是嵌入式系统最常用的内部存储设备,通过移植Nand flash驱动,了解Linux内核Nand Flash的实现。说明:在本系统移植课程实验中命令行提示符“$”表示是在主机上执行,“#”表示在目标板执行。【实验环境】● 主机:Ubuntu 10.10 (64bit);● 目标机:FS_S5PC100平台

2014-04-10 10:09:21 996

转载 理解 Android Build 系统

Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站:http://source.android.com/source/downloading.html。Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Make 文件,Shell

2014-04-09 17:30:56 827

转载 Linux中的MACH定义之MACHINE_START / MACHINE_END

本文讲解LINUX中用MACHINE_START/MACHINE_END定义的MACH,并给出定义的各个成员函数在初始化过程中被调用的时机。1.      定义一个MACHLINUX中MACHINE定义是用MACHINE_START()/MACHINE_END两个宏来实现的,比如MSM的实现(arch/arm/mach-msm/board-halibut.c):MACHINE_

2014-04-09 13:56:26 742

转载 Android init进程启动分析

作者:唐老师,华清远见嵌入式学院讲师。一、Android Init.c执行流程Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程。PS:可以通过:ps aux

2014-04-09 11:10:02 635

转载 最全的Android源码目录结构详解

Android 2.1|-- Makefile|-- bionic                        (bionic C库)|-- bootable                (启动引导相关代码)|-- build                        (存放系统编译规则及generic等基础开发包配置)|-- cts                

2014-04-08 15:01:25 842

Linux嵌入式系统环境搭建、内核配置、最小系统启动与设备文件分析

Linux嵌入式系统环境搭建、内核配置、最小系统启动与设备文件分析

2013-06-12

空空如也

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

TA关注的人

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