摘要: 启动流程包括两个阶段:linux系统启动android应用系统启动1、linux系统启动启动次序:系统上电Bootloader引导linux内核启动init初始化系统服务1.1 系统上电与启动ROM上电,PC指向复位时的零地址,即从启动代码开始执行,启动代码在NOR Flash或NAND Flash中。1.1.1 从NOR Flash中启动启动代码在NOR Flash开始处设置好存储器地址、存取规则配置电源管理模块,各模块上电复制正式代码到内存中设置地址映射PC指向内存启动代码1.1.2 从NAND Flash中启动上电开始,DMA将NAND Flash第一页数据搬运到内部RAM中PC指向内部 阅读全文
posted @ 2014-03-31 16:16 学而~ 阅读(315) 评论(0) 推荐(0)
摘要: 一、GSM网络概述1、安全机制认证用户,防止未授权接入对空中接口传输加密,防止无线信道上用户信息被窃听SIM卡独立于终端,管理用户信息在空中接口上以临时身份标识用户,防止用户被跟踪 但是GSM的缺陷已经逐渐暴露。2、GSM网络结构两个主要组成部分: 固定网络基础结构(固话网络) 移动基站按功能,GSM系统中的模块划分为四个部分: 网络与交换子系统NSS 基站子系统BSS 移动台MS 公众网络PN MS BSS NSS PN3、GSM网络的安全要求GSM的两个主要安全目标: 防止未授权接入、用户身份倍假冒(通过用户鉴权) 保护用户隐私(通过传输加密、信令加密)二、GSM... 阅读全文
posted @ 2014-03-30 17:25 学而~ 阅读(2172) 评论(0) 推荐(0)
摘要: 1、首先打开终端 2、在终端中输入sudo apt-add-repository ppa:tualatrix/ppa 回车后输入密码等一会,导入密钥 3、再输入sudo apt-get update 回车再等一会,更新源信息 4、输入 sudo apt-get install Ubuntu-tweak 回车后就开始下载最新的Ubuntu tweak了,马上就好了 安装完毕后便可以在 应用程序-系统工具中找到 阅读全文
posted @ 2014-03-29 13:41 学而~ 阅读(547) 评论(0) 推荐(0)
摘要: 我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。 对程序的调试起到了很重要的作用。(下文中的日志级别和控制台日志控制级别是一个意思)printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。日志级别一共有8个级别,printk的日志级别定义如下(在linux26/includelinux/kernel.h中):#defineKERN_EMERG""/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/#defineKERN_ALERT 阅读全文
posted @ 2014-03-28 22:10 学而~ 阅读(987) 评论(0) 推荐(0)
摘要: 原文地址:http://blog.csdn.net/estate66/article/details/5886816 ,本人对此文有改进。 当我们编写完一个驱动后,我们要把它以模块形式编译或者直接编译进内核时,需要修改相关文件,其中最重要的便是kconfig,makefile。主要是分析一下三者之间的关系,然后就其语法简要的谈一下。 当我们在内核源码目录下执行make(或者makemenuconfig等命令)命令时,实际上是根据makefile来进行编译的。我在 mini2440开发板上编写了一个按键控制led灯的驱动,文件名为buttons_leds_zhao.c,属于字符驱动。因此在/.. 阅读全文
posted @ 2014-03-28 19:55 学而~ 阅读(1844) 评论(0) 推荐(0)
摘要: 步骤如下:1、make mrproper Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,其中,mrproper和distclean,clean之间的区别,Linux内核源码根目录下面的makefile中,有很清晰的解释:help:@echo 'Cleaning targets:'@echo ' clean - Remove most generated files but keep the config and'@echo ' enough build support to buil 阅读全文
posted @ 2014-03-28 16:47 学而~ 阅读(609) 评论(0) 推荐(0)
摘要: Andriod是什么?首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”Andriod是什么?Linux所有东西的底层是一个稳定的保持更新的Linux内核(我现在用的Nexus手机所用的就是2.6.32版的内核),以及我们精心打造的能源管理组件;当然还有将它们整合至上层Linux代码的扩展和公共组件。DalvikAndroid另一个重要的部分,包括虚拟机和一组重要的运行环境。它的设计非常巧妙,是个 阅读全文
posted @ 2014-03-27 17:21 学而~ 阅读(353) 评论(0) 推荐(0)
摘要: 该宏有三个参数:prev, next, last。它们都是局部变量。 prev:输入参数,变量值为旧进程描述符的地址。 next:输入参数,变量值为新进程描述符的地址。 last:输出参数,用来记录该进程是由哪个进程切换而来的,即保存 在当前进程之前 占用cpu的进程的 进程描述符地址。为什么需要last这个局部变量呢? 因为: 首先,记录前一进程的进程描述符地址,对进程切换是很有用的,具体什么用途,以后再说。 其次,switch_to宏由就进程调用,在新进程结束,新进程如果想获取旧进程描述符地址,不能直接读取局部变量prev(因为prev存放在该宏调用者,即旧进程的内核栈中,新进... 阅读全文
posted @ 2014-03-26 14:31 学而~ 阅读(2306) 评论(0) 推荐(0)
摘要: 这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|-- external (android使用的一些开源的模组)|-- frameworks (核心框架——jav 阅读全文
posted @ 2014-03-26 11:06 学而~ 阅读(306) 评论(0) 推荐(0)
摘要: 显然Eclipse不是阅读Android源码的好工具,不流畅,搜索低效,继承性关系/调用关系都无法有效查看。推荐Source Insight,在这个工具帮助下,你才可以驾驭巨大数量的Android 源码,你可以从容在Java,C++,C代码间遨游,你可以很快找到你需要的继承和调用关系。顺便,现在东家是Linux+Samba+Windows的工作模式,Linux+Samba用于代码的同步/编译/管理,Windows做代码编辑。你需要先理解下这个图:Application层就是一个个应用程序,很好理解。Framework提供一个java的运行环境以及对功能实现的封装,简单点说,你家装修总要留很多水 阅读全文
posted @ 2014-03-25 22:19 学而~ 阅读(424) 评论(0) 推荐(0)