自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android2.2添加Ethernet 框架支持(二)

接上文 Android2.2添加Ethernet 框架支持(一)<!--p {margin-bottom:0.21cm}-->应用程序packages/apps/Settings目录下的改动:复制packages/apps/Settin

2011-09-09 16:54:17 2787 5

原创 Android2.2添加Ethernet 框架支持(一)

下载android-x86的Framework 和package 两个文件夹;网址:http://www.android-x86.org/getsourcecode我们要移植的是android-2.2的版本,所以我们必须得到android-x86在2.2版

2011-09-09 16:45:44 4956 9

原创 Android2.2添加busybox 支持——基于Android Bionic库

Android 的toolbox没有自动补齐,命令少,对于开发人员还是需要busybox,直接移植官方的busybox会有很多问题,这里简单阐述cyanogenmod提供的针对android bionic 库的android源码的移植及添加方法,方便大家开发使用。Androi

2011-09-09 14:52:00 3439

原创 Android 启动过程分析 (二)

<!--p {margin-bottom:0.21cm}--><!--p {margin-bottom:0.21cm}-->接上文Android 启动过程分析 (一), 从这里开始android启动分为两条线走,分别是:

2011-08-04 13:39:48 5298 1

原创 Android 启动过程分析 (一)

本文主要介绍Android系统的启动过程,以Androidinit进程之后部分为主,init之前部分同标准Linux内核启动完全相同。于Android启动过程复杂,涉及C、C++及java部分内容,本文以流程分析为主线旨在让大家在分析Android系统时有个清晰的思路。鉴于本人水

2011-08-01 10:32:01 3229

转载 解决“E: 无法获得锁 /var/lib/apt/lists/lock”问题

<br />Ubuntu:解决“E: 无法获得锁 /var/lib/apt/lists/lock”<br /><br />用sudo apt-get update时出现“ E: 无法获得锁 /var/lib/apt/lists/lock”错误。<br />在网上搜索到的解决方案──“将/var/lib/apt/list/lock删除掉即可”──这种方法也不是可取。其实就是在上次更新没有正常关闭的情况下使用。<br />在大部分情况下,问题的原因在于其他的程式如系统的自动更新、新立得等正在使用ap

2011-03-01 17:27:00 2502

原创 FS2410 开发板linux-2.6.35内核 LCD 驱动移植

FS2410 开发板linux-2.6.35内核 LCD 驱动移植在arch/arm/mach-smdk2410.c相应位置中添加如下蓝色行代码#include    //added by Thomas.Yang 2011-01-30#include #include #include #include #include #include #include /*LCD35 driver Added by Thomas.Yang (Yang Zhiping) 2011-01-30

2011-01-31 14:33:00 2102

转载 ubuntu10.04 bochs 安装配置及启动

    Bochs是由Kevin Lawton 于1994年开始开发的一个用于完全模拟Intel的x86模拟器。开始它仅仅是一个商业产品,不过可以购买到它的源程序。2000年3月,Mandrakesoft买下了Bochs,并把它置于GNULGPL下使之成为一个开源程序。在2001年3月,Kevin把Bochs的家从bochs.com移到了 bochs.sourceforge.net上了。  Bochs是用C++开发的,它被设计成可以运行于多种主流平台下,包括x86, PPC, Alpha,  Sun和MIP

2011-01-27 16:33:00 3065

转载 android 永远锁屏解决方法

<br />     本文介绍一下怎样让Android设备永不锁屏。     Android系统的锁屏时间存放在Setting数据库中,字段为Settings.System.SCREEN_OFF_TIMEOUT。查看SettingsProvider源码,查看如下文件的源码:<br />frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java<br />查

2011-01-24 15:52:00 3985

原创 FS2410 开发板linux-2.6.35内核 jffs2根文件系统镜像

1.了解 NandFlash 信息 :FS2410开发板的Nand Flash 型号K91208 ;PageSize = 512 Bytes + 16 Bytes(OOB);BlockSize = 32 pages *(512 Bytes + 16 Bytes(OOB)) = 32 pages * 528 Bytes = 16K +512 Bytes(OOB) ;DeviceSize = 4096 blocks * (32 *(512 Bytes + 16 Bytes(OOB))) =

2011-01-24 15:39:00 2243

原创 fs2410 linux-2.6.35内核移植中的RTC问题--drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

linux-2.6.35在fs2410开发板启动后,通过nfs挂载文件系统,但是rtc不能用,也会在挂载文件系统之前打印如下提示信息:TCP cubic registeredNET: Registered protocol family 1RPC: Registered udp transport module.RPC: Registered tcp transport module.drivers/rtc/hctosys.c: unable to open rtc device (rtc0)IP-Conf

2011-01-21 15:40:00 6220

原创 Android2.2 Vold 分析-(四)---Vold 消息接收及挂载/卸载处理部分分析

<br />Android2.2 Vold 分析-(四)---20110106<br /><br />Vold 消息接收及挂载/卸载处理部分分析<br /><br />我们知道在关于Vold分析的第一篇“system/vold/main.cpp-----mian函数分析” 中,除了NetlinkManager 对象nm间接启动了startListner线程之外,还有一个CommandListener对象cl启动了startListener线程;<br />     cl->startListen

2011-01-06 17:40:00 7096 9

原创 Android2.2 Vold 分析(三)---Vold 中 volumeManager分析

Android2.2 Vold 分析-2---20110105-2Vold 中 volumeManager分析void NetlinkHandler::onEvent(NetlinkEvent *evt) {    VolumeManager *vm = VolumeManager::Instance();    const char *subsys = evt->getSubsystem();    if (!strcmp(subsys, "block")) {        vm

2011-01-05 17:50:00 5274

原创 Android2.2 Vold 分析-(二)---Vold 中 Netlink事件通信机制分析

Android2.2 Vold 分析-2---20110105Vold 中 SocketListener::startListen()分析NetlinkHandler的成员函数start()会调用SocketListener::startListen()在system/vold/main.cpp main()函数中调用nl->start(),就是调用int NetlinkManager::start() 函数,该函数主要功能: (1). 创建NETLINK socket (2). 构建N

2011-01-05 16:21:00 7937

原创 Android Vold 分析(一)--system/vold/main.cpp-----mian函数分析

<br />Android2.2 Vold 分析-1---20110104<br /><br />文件:system/vold/main.cpp-----mian函数分析<br /><br />声明  VolumeManager *vm;  CommandListener *cl;    NetlinkManager *nm;对象指针;<br />创建目录/dev/block/vold    mkdir("/dev/block/vold", 0755);<br /><br />分别构建Vol

2011-01-04 18:11:00 8114 1

原创 Bug : mm/page-writeback.c:820: internal compiler error: Segmentation fault

Android 编译bug  mm/page-writeback.c:820: internal compiler error: Segmentation fault 解决:问题描述:CC mm/page-writeback.omm/page-writeback.c: In function 'write_cache_pages':mm/page-writeback.c:918: internal compiler error: Segmentation faultPlease sub

2010-12-30 14:29:00 10664 1

原创 Android 开发环境搭建---Android 编译需要的sun-java5-jdk在ubuntu10.04以上版本的安装问题

<br />         ubuntu9.10以上版本中,ubuntu就已经去除了对sun-java5-jdk的支持,但是为了进行android的开发,又必须安装sun-java5-jdk。那么在享受ubuntu10.04中,如何来进行sun-java5-jdk的安装呢?<br />下面是一个方案:<br /> 1.编辑/etc/apt/sources.list文件,将安装源更改为ubuntu9.04的安装源为:<br />deb http://archive.ubuntu.com/

2010-12-30 13:46:00 1406

转载 解决: 动态 MMap 没有空间了。请增大 APT::Cache-Limit 的大小。当前值:25165824。(man 5 apt.conf) 的问题

From :http://blog.csdn.net/ssihc0/archive/2010/07/28/5772392.aspx<br /><br />装完ubuntu 10.04后就无法更新了,出现如下问题<br /><br />E: 动态 MMap 没有空间了。请增大 APT::Cache-Limit 的大小。当前值:25165824。(man 5 apt.conf)<br /><br />E: 处理 linux-headers-2.6.24-25 (NewVersion1)时出错<br

2010-12-30 13:16:00 1304

转载 HOWTO: Unpack, Edit, and Re-Pack Boot Images

Contents1Background2Structure of boot and recovery images3Unpacking, Editing, and Re-Packing the images3.1Alternative Method4Flashing your new image back onto the phone5Something fun to do with your new found power6This is not the same thing as applying an

2010-11-10 17:18:00 1815

原创 android --启动画面制做 png图片-->initlogo.rle

<br />用图片工具编辑好想要的png之后,保存为logo.png<br />在logo.png所在命令下执行命令:<br /> <br />使用ImageMagick自带的convert命令,进行raw格式转换<br />convert -depth 8 logo.png rgb:logo.raw<br />     <br />android自带的rgb2565工具,对raw文件进行rle565格式转换<br />$(SRC_HOME)/out/host/linux-x86/bin/r

2010-11-10 16:54:00 5429 1

原创 android --bootanim

<br />android bootanim 进程启动:<br />frameworks/base/libs/surfaceflinger/SurfaceFlinger.cpp<br />SurfaceFlinger::readyToRun()<br />==> property_set("ctl.start", "bootanim"); // start boot animation<br />启动脚本:<br />system/core/rootdir/init.rc:327:servi

2010-11-08 19:20:00 3403

原创 dhcp 过程信息

当客户端被配置为接收 DHCP 信息后首次初始化时,它将启动与服务器的对话。 以下是客户端和服务器之间对话的摘要表,最后一列是数据包级的过程说明:Source Dest Source Dest PacketMAC addr MAC addr IP addr IP addr Description--------------------------------------------------------

2010-10-23 17:38:00 1708

转载 Android 属性系统

<br />       每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。<br />在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system /init。“init”守护进程将启动一个属性服务。属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发

2010-10-23 11:14:00 1640 1

转载 Android 的系统属性(SystemProperties)设置分析

作者:徐建祥([email protected])日期:2009/11/11网址:http://www.anymobile.orgAndroid 的系统属性包括两部分:文件保存的持久属性和每次开机导入的cache属性。前者主要保存在下面几个文件中:bionic/libc/include/sys/_system_properties.h1 #define PROP_SERVICE_NAME "property_service"2 #define PROP_P

2010-10-23 11:10:00 1704 1

转载 Android log

<br />共两篇文章,第一篇讲述了如何在程序中输出Log信息,第二篇详细的分析了Log信息的输出机制。<br />下面是第一篇(转自:http://blog.163.com/binghaitao@126/blog/static/3383532520099309366435/)<br />1:在编译so文件的c或cpp文件之前中加入以下代码,就可以在android中的log显示日志内容<br />       #include <android/log.h><br />       #define

2010-10-08 15:20:00 1056

原创 Arm linxu启动过程分析(四)

1.  Linux内核启动第三阶段start_kernel:内核从现在开始就进入C语言部分,内核启动第三阶段从init/main.c文件中的start_kernel()函数开始,到该函数结束。这一阶段对整个系统内存、cache、信号、设备等进行初始化,最后生成init进程后,调用cpu_idle()完成内核启动的第三阶段。Start_kernel()中调用了一系列的初始化函数,以完成kernel本身的设置。这些动作有些是公共的,有的则是需要配置才会执行的。asmlinkage void __init sta

2010-06-12 23:02:00 3139

原创 Arm linxu启动过程分析(三)

<br />1.  Linux内核启动第二阶段:<br />内核启动第二阶段主要完成的工作有,cpu ID检查,machine ID(也就是开发板ID)检查,创建初始化页表,设置C代码运行环境,跳转到内核第一个真正的C函数startkernel开始执行。<br />这一阶段涉及到两个重要的结构体:一个是struct proc_info_list 主要描述CPU相关的信息,定义在文件include/asm-arm/procinfo.h中,与其相关的函数及变量在文件arch/arm/mm/proc_arm920

2010-06-12 22:55:00 4780

原创 Arm linxu启动过程分析(二)

*****解压缩内核,分三种情况,下面一一解释:说明:这一段分析中所提到的vmlinux指的是基本内核映像vmlinux/*检查当前地址间的相互关系,防止解压缩过程中出现地址重叠或者说地址冲突 *   r4 = final kernel address   //最终解压后的内核首地址 *   r5 = start of this image zImage的运行时首地址,一般为0x30008000,当然也可以不同, *   r2 = end of malloc space (and therefore thi

2010-06-12 22:48:00 2661

原创 Arm linxu启动过程分析(一)

本文着重分析FS2410平台linux-2.6.14内核启动的详细过程,主要包括:zImage解压缩阶段、vmlinux启动汇编阶段、startkernel到创建第一个进程阶段三个部分,一般将其称为linux内核启动一、二、三阶段,本文也将采用这种表达方式。对于zImage之前的启动过程,本文不做表述,可参考作者 “u-boot-1.3.1启动过程分析”一文。---------------------------------------------------------------------

2010-06-12 22:27:00 4842 2

原创 arm linux 内核生成过程

1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; arm-linux-gnu-ld -EL  -p --no-undefined -X -o vmlinux -T arch/arm/kernel/vmlinux.lds  arch/arm/kernel/h

2010-05-26 23:18:00 6078

原创 u-boot-1.3.4移植问题点(一)

u-boot-1.3.4移植问题点分析硬件平台:Arm920Tv4 S3c2410 开发板:优龙fs2410 NORFlash:SST39VF1601(2MB)1. u-boot 环境变量偏移地址及大小设置不合理,导致内核无法启动现象:   当我设置setenv bootcmd nand read 30800000 40000 200000 /;bootm 30800000 之

2010-05-25 19:36:00 2313

原创 bootm引导内核过程详解之二

//文件名:u-boot-1.3.1/lib_arm/armlinux.c//bootm引导内核过程详解之二 //由cmd_bootm.c中的do_bootm函数调用该函数来最终引导内核启动/*该函数的主要功能:1. 设置传递内核参数,并将这些参数存储在内存指定位置(0x30000100)2. 跳转到内核入口点执行,将控制权交给内核*/ DECLARE_GL

2010-05-25 19:31:00 2188

原创 bootm引导内核过程详解之一-cmd_bootm

//文件名:u-boot-1.3.1/common/cmd_bootm.c//bootm引导内核过程详解之一-cmd_bootm//Thomas.Yang 2010.05.25 /*do_bootm()是bootm命令真正执行的第一个函数主要功能 :1. 复制Image(这里指的是uImage) 头到全局变量header;2. 检查header的magic numb

2010-05-25 19:27:00 6322

转载 linux 的 source命令

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。这两个命令都以一个脚本为参数,该脚本将作为当前shell的环境执行,即不会启动一个新的子进程。所有在脚本中设置的变量将成为当前Shell的一部分。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修

2010-04-21 15:31:00 850

原创 GCC 编译c程序的方法及过程解析

GCC 编译c程序的方法及过程解析 Justin.zp.Yang 2010.04.10          目前 Linux 下最常用的 C 语言编译器是 GCC ( GNU Compiler Collection ),它是 GNU 项目中符合 ANSI C 标准的编译系统,能够编译用 C 、 C++ 和 Object C 等语言编写的程序。 GCC 不仅功能非常强大,结构也异常灵活。最

2010-04-10 14:50:00 3370 1

转载 gcc attribute 机制

作者:聂飞(afreez)      GNUC的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(FunctionAttribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。  __attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会

2010-01-09 11:26:00 1491

原创 linux网络编程中的地址结构

1.网络编程中的地址结构 在网络编程中,我们经常会进行地址类型的转换,多是因为我们能够是别的地址为文本表示,而计算机网络能识别的为socket结构的二进制值表示。我们现总结一下地址的两个传递方向:(1)从进程传递到内核from the process to the kernel;(2)从内核传递到进程from the kernel to the process.地址转换函数:(1)大部

2010-01-04 22:42:00 1110

原创 u-boot.lds分析(u-boot-1.3.4 nandflash启动 引导linux内核)

     u-boot.lds决定了u-boot可执行映像的连接方式,以及各个段的装载地址(装载域)和执行地址(运行域)。GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill.

2009-12-19 16:50:00 2097 1

原创 ubuntu8.04 USB转串口问题解决--USB转串口线----HL340

     最近装了个硬盘版的ubuntu 8.04,准备作为以后的嵌入式开发环境,其他一切基本弄好准备连接开发板启动时,出了问题。串口工具用的是minicom,但是连线开发板(FS2410)之后没有任何打印信息。因为所有的开发环境可以确认没有问题,所以初步判定为串口配置的问题。在网上查找得知minicom串口设置,需设为 /dev/ttyUSB0, 但是我设只好之后之后,发现找不到/dev

2009-12-18 23:50:00 4473

转载 va_start &va_end 的使用和原理

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表voidfoo(...);void foo(parm_list,...);

2009-12-12 00:17:00 951

FS2410中CS8900A I/O模式驱动分析

本文主要分析基于优龙FS2410开发板中CS8900A网卡芯片在u-boot-1.3.4中的使用流程及方法。涵盖硬件接口电路的简单分析、CS8900A I/O模式分析、u-boot-1.3.4中的CS8900A驱动主要代码注释、及tftp/ping命令在u-boot执行过程分析。

2010-06-11

USB转串口---ch341驱动源码 for linux

USB转串口---ch341驱动源码 for linux 适用于linux环境下的USB转串口线 HL-340 具体操作可查看:http://hi.csdn.net/link.php?url=http://blog.csdn.net%2Fsustzombie

2009-12-19

空空如也

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

TA关注的人

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