- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 android系统开发小知识-启动脚本文件内部的执行顺序
<br />我们知道android在启动的时候通过init进程来解析init.rc和init.xxx.rc文件,<br />然后执行这两个文件解析出来的内容,init.rc和init.xxx.rc文件中的内容却并不是<br />按照顺序来执行的,而是有固定的执行顺序,首先,init.rc和init.xxx.rc文件中的内容<br />全部会放在4个关键字下:<br />early-init, init, early-boot, boot<br />所以一个典型的rc文件的写法如下:<br
2010-12-01 11:04:00 7029 1
原创 android系统开发(十)-audio移植一
<br />1,移植基础:<br />(1)内核声音驱动和alsa驱动<br />(2)alsa-lib和alsa-utils库移植<br />这两部分上一节已经介绍过了。<br /><br />2,android的audio最核心的部分是audioflinger,audioflinger向上处理来自于应用程序的声音相关的所有请求<br />向下通过AudioHardwareInterface访问硬件,android的audio架构如下所示:<br /> Ap
2010-12-01 10:27:00 12987 7
原创 android系统开发编译过程中的汇编错误
<br />android系统开发移植alsa-lib库的过程中编译的时候出现了如下的错误:<br />错误1<br />/tmp/cckyaR40.s: Assembler messages:<br />/tmp/cckyaR40.s:2763: Error: selected processor does not support `mrs ip,cpsr'<br />/tmp/cckyaR40.s:2764: Error: unshifted register required -- `
2010-11-30 14:54:00 6452 2
原创 android系统开发(九)-Audio部分准备工作alsa移植
<br />1,audio内核部分的开发,包含codec驱动,cpu的声音驱动和内核alsa驱动等,<br />这个是完全的嵌入式linux的开发内容,这里跳过,请确保这几部分正确。<br /><br />2,从alsa的官方网站下载最新的alsa-lib-1.0.23和alsa-utils-1.0.23<br />官方网站:http://www.alsa-project.org<br />alsa-lib基于内核alsa驱动,它将对内核alsa接口的操作封装成libasound库<br /
2010-11-30 14:53:00 11777 1
原创 android系统开发(八)-SDCARD
<br />关于android系统开发sdcard移植,主要有如下工作:<br />1,内核驱动开发,完成后每次插入和拔出sdcard系统都会有相关的信息显示,而且sdcard可以手动挂载。<br /><br />2,android的sdcard挂载主要是vold来完成,vold的源代码在/system/vold目录下,编译成/system/bin/vold<br />init.rc文件中有vold系统服务,确保android系统开机后vold有正常运行。<br /><br />3,添加vo
2010-11-25 16:59:00 9096 3
原创 android系统开发(七)-背光模块
<br />1,总论<br />背光模块属于HAL层开发,HAL层开发,用一句话来概括就是定义一个hardware.h中定义的名称为宏HAL_MODULE_INFO_SYM的hw_module_t结构体,<br />然后实现结构体的相关内容<br /><br />2,驱动方面的准备<br />简单的嵌入式linux驱动,编写LCD背光驱动,并提供接口给上层修改,我所用的是直接修改接口文件,接口如下:<br />/sys/class/backlight/pwm-backlight/brig
2010-11-23 18:09:00 10858 2
原创 android系统开发(六)-HAL层开发基础
Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念1,源代码和目标位置源代码: /hardware/libhardware目录,该目录的目录结构如下:/hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录/hardware/libhardware/include/hardware目录下包含如下头文件:hardware.h 通用硬件模块头文件copybit.
2010-11-22 11:47:00 13172 4
原创 Ubuntu下svn安装和使用
<br />1 第一步:安装软件。<br />安装客户端<br />sudo apt-get install subversion<br />安装服务器端<br />sudo apt-get install libapache2-svn<br /><br /><br />2 svn的基本操作<br />(1)从服务器上下载代码:svn checkout<br />举例:<br />svn checkout svn://192.168.6.10/project/Source_c
2010-11-18 10:40:00 3085
原创 android系统开发(五)-tslib移植
(1)切换至tslib目录然后执行如下命令(以marvell平台为例)./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-marvell-linux.cache./configure --host=arm-marvell-linux-gnueabi --prefix=/work/svn/ts_build --cache-file=arm-marvell-linux.cache上面三步仅仅是为了取得tslib目录下的config.h
2010-11-12 17:11:00 5732 3
原创 android系统开发(四)-触摸屏tslib移植(内核)和原理分析
首先了解一下tslib的运行原理,tslib的运行分成两部分(1)校验在LCD固定坐标位置依次显示出5个坐标让用户触摸,把LCD坐标和用户触摸时驱动屏驱动底层的坐标总共5组值保存起来运行tslib库的算法对其进行运算,得出校准用7个值(2)校准每次触摸屏驱动读取到硬件坐标时应用校准用的7个值对该坐标进行一次运算,然后将运算后的坐标作为正常坐标即可。按照上面的原理,(1)我们先修改内核部分,我的平台用的触摸屏幕驱动是tsc2007,驱动文件为内核/drivers/input/tou
2010-11-11 19:16:00 6713
原创 android启动过程配置文件的解析与语法
<br />(1)android启动文件系统后调用的第一个应用程序是/init,此文件的很重要的内容是解析了init.rc和init.xxx.rc<br />两个配置文件,然后执行解析出来的任务。相关代码在android源代码/system/core/init/init.c文件中,如下:<br /> parse_config_file("/init.rc");<br /><br /> /* pull the kernel commandline and ramdisk propert
2010-11-11 15:39:00 5928
原创 android系统开发小问题-启动过程中android字符没有显示出来
<br />android目标平台可以正常启动,但是启动过程中的android字符没有显示出来,这个是linux内核配置的问题<br />打开内核framebuffer控制台即可。<br />(1)make menuconifg后选择Device Drivers->Graphics support->Console display driver support->Framebuffer Console support<br />然后打开相关的几个配置选项即可。<br />(2)直接修改内核配
2010-11-11 11:33:00 3423 2
原创 Android系统移植(三)-按键字符表
<br />上节讲android的Window Manager将内核按键码通过按键映射表转换成android按键码,<br />这节讲的是android按键码向android字符的转换,转换也是通过Window Manager来完成的<br />(1)原始按键字符表,我们知道一个按键是可以显示多个字符的,决定显示字符的是CAPS(大小写),FN,NUNMBER等按键<br />举例如下:<br />[type=QWERTY]
2010-11-11 10:25:00 4945 1
原创 Android系统开发小知识-在android产品开发中添加新的编译模块
<br />Android开发中用户内容定义在vendor目录下,而用户产品的内容都定义在vendor/<company_name>/<board_name>目录下<br />如果需要添加新的内容,可以在该目录下新建子目录,同时修改AndroidBoard.mk文件即可。比如说要添加一个按键映射文件:<br />(1)在vendor/<company_name>/<board_name>目录下建立一个keymaps子目录<br />(2)将我们需要的按键映射文件gpio-keys.kl和powe
2010-11-10 17:10:00 5250 2
原创 Android系统移植(二)-按键移植
<br />这一部分主要是移植android的键盘和按键<br />(1)Android使用标准的linux输入事件设备(/dev/input目录下)和驱动,按键定义在内核include/linux/input.h文件中,<br />按键定义形式如下:<br />#define KEY_ESC 1<br />#define KEY_1 2<br />#define KEY_2 3<br /><br />(2)内核中(我
2010-11-10 16:35:00 15791 8
原创 Android系统移植(一)-让android系统在目标平台上运行起来
Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下:(1)移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动允许正常。此过程完全是嵌入式linux的开发,这里直接跳过。需要注意的是,由于android已经被linux官方开除,因此从网站上(如http://www.kernel.org/)下载的最新linux内核源代码已经不包含android的专有驱动,因此建议从google网上下下载Linu
2010-11-10 11:41:00 14722 6
原创 android编译系统makefile(Android.mk)写法.txt
<br />android编译系统的makefile文件Android.mk写法如下<br />(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下<br />Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:<br />LOCAL_PATH:=$(call my-dir)<br />上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。<br />(2)Android.mk中可以定义多个编译模块,每个编译模块都是以incl
2010-11-09 11:37:00 9145
原创 制作ubifs文件系统
<br />1,安装相关的软件包<br />apt-get install liblzo2-dev<br /><br />2,获取相关的工具mkfs.ubifs和ubinize<br />这两个工具是制作ubifs文件系统的时候用到,它们是mtd-utils工具包中的内容,mtd-utils工具包你可以从下面的网站下载和编译出来:<br />官方网站:http://www.linux-mtd.infradead.org/index.html<br />资源下载网站:http://git.
2010-11-08 10:32:00 6199 1
原创 创建一个新的Android产品项目
从google网站上下载的android源代码编译时默认是编译google设定的产品,如果要开发自己的产品,则需要重新定义一个产品项目,过程如下:首先我们定义产品的规格,举例如下:公司名称 ardent产品名称 MTP主板名称 merlin然后安装下面的步骤新建产品项目:(1)在源代码目录下创建一个用户目录mkdir vendor(2)在用户目录下创建一个公司目录mkdir vendor/merlin(3)在公司目录下创建一个products目录mkdir
2010-11-07 13:31:00 5278 3
原创 Ubuntu下tftp服务器的创建
<br />实验平台:Ubuntu9.04<br /><br />(1)安装tftp服务<br />sudo apt-get install tftp tftpd openbsd-inetd<br /><br />(2)在根目录下创建文件夹 tftpboot文件夹并修改权限<br />cd /<br />sudo mkdir tftpboot<br />sudo chmod 777 tftpboot<br /><br />(3)修改/etc/inetd.conf文件如
2010-11-05 11:20:00 2900 1
原创 Ubuntu下使用Simba服务实现局域网内文件共享
<br />Ubuntu下安装Simba服务器将linux电脑上的内容共享,同一局域网内的另外一台Windows PC即可访问其共享内容,<br />从而实现Windows电脑向访问本地文件一样访问Linux文件系统的内容。<br /><br />(1)安装Simaba服务器<br />sudo apt-get install samba<br /><br />(2)安装samba图形化配置软件<br />sudo apt-get install system-config-samba<
2010-11-04 17:18:00 2570
原创 Android系统开发编译环境配置
<br />主机系统:Ubuntu9.04<br />(1)安装如下软件包<br />sudo apt-get install git-core <br />sudo apt-get install gnupg<br />sudo apt-get install sun-java5-jdk<br />sudo apt-get install flex<br />sudo apt-get install bison<br />sudo apt-get install gperf<b
2010-11-04 13:41:00 3255 1
原创 让Ubuntu系统开机自动挂载磁盘分区
(1)首先要查看自己的磁盘分区,使用fdisk命令如下:sudo fdisk -l得到的结果类似如下:255 heads, 63 sectors/track, 9730 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0xf112f112 Device Boot Start End Blocks Id System/dev/sda1
2010-11-03 14:57:00 1036
原创 提高Ubuntu系统更新的速度
<br />Ubuntu系统更新时速度很慢,这是因为更新服务器比较慢所导致,修改软件源即可。路径如下:<br />系统->系统管理->软件源<br />(1)Ubuntu软件<br />首先在"Ubuntu软件"页面你可以修改服务器,将“下载自”选项选择为“其它”,然后选择一个速度快的服务器。<br />(2)第三方软件<br />在“第三方软件”页面,你可以将现有的软件源地址选项去掉,然后点击“添加”按钮加入新的软件源,推荐用163服务器的<br />软件源,将下列地址逐一添加进去:<br />deb h
2010-11-03 14:48:00 1251
原创 Android网络资源
<br />Google Android的官方网站:<br />http://www.android.com/<br />此网站上有Google Android的所有资源。主要的内容分成三大块:<br /> <br />1 Android源代码工程<br />这个是手机/MID等Android设备制造厂家需要关注的网站,我们称之为“系统开发”,网站如下:<br />http://source.android.com/<br />在此网站上我们能做的工作主要如下:<br />(1)下载android的源代码<
2010-11-02 17:56:00 1900
原创 字符串处理函数strcpy和sprintf的效率比较
结论:strcpy效率比sprintf高很多,但是sprintf功能更加强大。测试代码如下://头文件很多是多余的,呵呵。#include #include #include #include #include #include #include #include #include #include int main(int argc, char **argv){ s
2010-01-19 11:54:00 1371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人