- 博客(80)
- 资源 (45)
- 收藏
- 关注
原创 磁珠的作用
在调试nt11003电容屏时,碰到这个奇奇怪怪的问题,纠结了好久好久。 这个问题是:将电容TP接到主板上去,开机,测试i2c通信失败,纳闷啊。 TP没有工作无外乎以下几个原因: 1、设备地址不对。 2、i2c通信读写函数不对。 3、i2c控制器正常,而i2c设备没有工作起来。 经过几经波折,排除了以上1/2种情况,测试出是TP
2012-02-07 18:05:09
5869
转载 mtdutils工具移植到tx2440
依据这篇文章,我成功移植了mtd-utils工具到tx2440,交叉编译器工具为4.1.3。mtd-utils工具的编译和使用 (2009-08-09 09:52) 分类: nand和yaffs2、jffs2等 一、下载源码包并解压root@:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0
2011-10-24 14:11:53
2371
原创 Android中背光系统架构
Mg Android中背光系统架构Email:wei7758@126.comBlog:http://blog.youkuaiyun.com/yinwei520Author:YwwTime:2011-9-24Update:(转载请注明出处,谢谢) 不知不觉喜欢上了写Blog,这还是一种不错的休闲方式,所噶~~,会不会也害怕过周末呢?因为寂寞~~啥样儿的生活才让觉得舒适
2011-09-24 16:00:17
16929
原创 Gsensor的整个系统架构
Email:wei7758@126.comBlog:http://blog.youkuaiyun.com/yinwei520Author: YwwTime:2011-8-22一、首先建立这样一个全局的观念: Android中sensor在Android系统架构中的位置及其工作。方框图如下:从以上方框图中,可以看出Android中sensor在系统分为四层:驱动层(Sensor D
2011-09-24 14:28:49
9768
转载 MMU的简单介绍
http://blog.163.com/sd_fox/blog/static/9456460720105238828793/ARM的MMU的作用:负责虚拟地址与物理地址的转换。多进程(应用)的操作系统如WINCE,需要MMU才能达到每个用户进程都拥有自己独立的地址空间
2011-09-01 15:24:24
1390
原创 在Eclipse中导入Android源码(成功)
1.把eclipse工程配置文件复制到android源码根目录下 cp development/ide/eclipse/.classpath ./ 2.修改eclipse程序的配置 1)、修改eclipse缓存设置 把eclipse.ini(在eclips
2011-08-30 11:39:37
7193
2
原创 linux中input_register_device注册函数分析
17.1.2 注册函数input_register_device()(1)button_init()函数中的28行调用了input_register_device()函数注册输入设备结构体。input_register_device()函数是输入子系统核心(input
2011-08-02 10:32:22
13200
转载 Linux中__init、__devinit等初始化宏
内核使用了大量不同的宏来标记具有不同作用的函数和数据结构。如宏__init 、__devinit 等。这些宏在include/linux/init.h 头文件中定义。编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。下面是一些常用的宏:·
2011-07-30 17:22:48
7359
原创 NDK+Cygwin环境搭建
目前由于在Android中编译本地二进制文件时,用arm-linux-编译不能通过,连最基本的stdio.h头文件都找不到,看了一下4.4.3的交叉编译器,似乎真没有这个头文件,这个头文件是在Android源码中的bionic这个目录,由于不知道Android里的编译机制,用ar
2011-07-30 10:09:59
1075
原创 Android平台中振动器系统详解
Email:wei7758@126.comBlog:http://blog.youkuaiyun.com/yinwei520Author:YwwTime:2011-9-24Update:(转载请注明出处,谢谢) 这里引用《Android系统级深入开发——移植与调试》一书中的解释,关于真正的vibrator代码分析,是以我项目中的代码为基础。 一: 振动器系统结构和移
2011-07-28 16:51:26
5743
原创 Android开发中内置apk程序
MID内置APK教程By YWW首先申明,这里的方法介绍是针对我司自己项目中的具体开发板而做的。Mg701内置APK有三种方式一、 这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考),在研发中,自己有源码时,可以将APK的源码包置于
2011-07-11 19:20:43
13859
2
原创 Android启动过程中init.rc文件分析
MID init.rc语法分析By YWW 关于init.rc最原始的教程请参考Android源码目录中:system/core/init/readme.txt。Android中的Init语言由四种类型的语句构成。如下:· Actionn :行为·
2011-07-11 19:10:11
3548
原创 Linux 设备驱动模型中的class(类)
首先,想说明一下,促使我研究class(类)的是因为它能够自动创建/dev下的设备节点。当然class还有其另外的作用,且自动创建设备节点的还有udev系统,udev是处于用户空间的,其自动创建设备节点也是依赖于sysfs文件系统中提供的class类,我有个问题,如果我的内核没有
2011-07-08 15:28:26
11041
3
原创 android启动过程中init.c文件分析
这里只贴出main函数的分析。init的主要工作:1、初始化log系统2、解析init.rc init%hardware%.rc等文件3、执行early-init action in the two files paresed in step24、设备初始化,如:/dev下面创建
2011-07-07 17:43:22
4527
2
转载 linux-2.6内核模块引用计数的实现
作者:刘洪涛,华清远见嵌入式学院金牌讲师。一、模块使用计数的背景知识模块是一种可以在内核运行过程中动态加载、卸载的内核功能组件。2.6内核中模块的命名方式为*.ko。模块在被使用时,是不允许被卸载的。编程时需要用“使用计数”来描述模块是否在被使用。二、2.4内
2011-07-05 10:01:05
921
原创 Linux中LCD驱动结构分析
针对Linux2.6内核中LCD驱动结构分析,由于公司项目是xx方案,所以也就用其来做分析,置于s3c2410的驱动,对比着看,应该没问题。 在分析驱动之前,首先先了解几个LCD驱动中的几个重要的数据结构, 1、struct fb_info数据结构(FBI)1 struct fb_info 2 { 3 int node; 4 int flags;
2011-07-04 19:12:05
3800
转载 如何提高你的工作效率
你是不是每天都很忙,却老是忙而无功?是不是感觉付出很多,得到的却只是老板的责骂?是不是没有一刻空闲,到总结时却说不出所完成的成果? 如果你已身心疲惫,但是一无所获,那么,你可能不是工作不努力,而是没有掌握提高工作效率的正确方法,在无意中浪费了你的生命。 下面的建议不是万能的“灵丹妙药”,但可以给你提高自己的工作效率提供一些有益的参考: 1、把所有工作划分成"事务型"和"思考型"两类
2011-06-30 14:47:00
846
转载 GCC内嵌汇编
GCC内嵌汇编刺猬@http://blog.youkuaiyun.com/littlehedgehog AT&T手册里面的,我整理了下,方便阅读 内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例
2011-06-16 11:58:00
802
原创 input输入子系统讲解
Linux的input子系统提供了输入设备的驱动框架,比如鼠标、键盘、触摸屏等就属于输入设备。Linux中关于input子系统的文档在Documentation/input目录,input的核心代码在input.c和input.h中。 input_handle, input_handler, input_devinput_handle,
2011-06-16 09:29:00
2241
转载 Linux内核定时器
一、定义:/include/linux/timer.h struct timer_list {struct list_head entry;unsigned long expires;void (*function)(unsigned long);unsigned long data;struct tvec_t_base_s *base;#ifd
2011-06-14 18:58:00
1011
转载 SVN基本教程
如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 本教程分为以下几个部门,不仅仅是快速入门,最后我们还
2011-06-13 11:42:00
548
转载 linux中的静态库与动态库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时 会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要 动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。 第1步:编辑得到举例的程序--hello.h、he
2011-06-02 17:45:00
768
原创 dm9000源码的分析
<br />通过Platform机制开发发底层驱动的大致流程为: 定义 platform_device---注册 platform_device ---定义 platform_driver-----注册 platform_driver。 <br />1. Platform_device 定义于 kernel/include/linux/platform_device.h中,<br />struct platform_device {<br /> const char * name;<br /> u32 id
2011-03-20 18:31:00
2264
2
原创 网卡DM9000的驱动移植
废话不说,直奔主题吧。要想成功移植DM9000的驱动,首先应该了解Linux内核中platform驱动模型架构和网卡DM9000与cpu的硬件连接,一、硬件链接情况 DM9000在电路板上的连接中与编程相关的如下:1)EECS拉高:16bit模式;2)INT连接到2440 EINT18:INT脚为低时为有效中断信号,中断线为EINT183)cs连接到2440的nGCS4,CMD连接2440地址总线ADDR[2]:知道上面这些信息已经足够移植驱动了。二、platform驱动模型 从Linu
2011-03-20 15:59:00
5354
2
原创 fs/binfmt_aout.c:270: error: 'SEGMENT_SIZE' undeclared
<br />Android主要有6部分<br /><br /><br /> Applications (java)<br />--------------------------------<br /><br /> FrameWork (java)<br /><br />=====================================<br /> | Core Libraries<br /> external Lib | --------------
2011-03-14 20:17:00
2089
原创 如何下载android源码
<br />1、Git的安装<br />从http://git-scm.com/下载最新的git源码包:并解压:<br />#tar -xjf git-1.6.3.3.tar.bz2<br />编译并安装:<br />#cd git-1.6.3.3<br />#./configure<br />#make;make install<br /># git --version<br />git version 1.6.3.3<br />2、安装Repo<br />首先确保在当前用户的主目录下创建一个/bin目录
2011-03-05 20:16:00
14550
1
原创 如何修改android主界面上默认的应用程序快捷方式
<br />1、在进入android系统中,在主界面上会默认创建几个应用程序的快捷方式,现在我想按客户的意愿,随意创建。<br />方法:<br />2、在android系统启动时,会默认安装几个应用程序,现在我想将自己的应用程序变成默认安装。<br />方法:
2011-03-03 20:20:00
3629
转载 android应用程序调试
要想检查正在运行的应用程序中发生了什么情况,就需要查看正在运行的 Dalvik VM。在 Eclipse 中,选择 Window > Open Perspective > Other。在出现的对话框中选择 DDMS。这会在 Eclipse 中打开一个新的透视图,其中有许多有趣的窗口。DDMS 为IDE和Emultor(or GPhone)架起来了一座桥梁。Developer可以通过DDMS看到目标机器上运行的进程/线程状态:可以让Eclipse程序连接到开发机上运行;可以看进程的heap信息、logcat信
2011-03-03 10:18:00
1746
原创 在esclips中添加servlet-api.jar
<br />如何在Eclipse中添加Servlet-api.jar的方法<br />正确的加载servlet-api.jar的方法如下:<br />1:右击项目工程名称<br />2:Properties<br />3: Jvav Build Path<br />4: Libraries<br />5: Add External JARS<br />6:找到“C:/Program Files/Apache Software Foundation/Tomcat 5.0/common/lib/servlet-
2011-03-01 17:04:00
3676
原创 Eclipse的自动编译
<br /> 在写android应用程序时,一直都是直接点击那个“run”工具,却没有看到有个“编译”工具,所有程序都应该是先编译后才能运行,一开始想,可能是直接点击“run”后它就自己编译了。今天在看R.java文件时知道,它是在编译时自动生成的资源索引文件,可是它在Eclipse中具体是怎样实现的呢,我就重新创建了一个工程,发现:工程以创建完成,R.java就生成了,这样就想到,Eclipse的编译可能是自动的。到网上一查,果真如此,在Eclipse中,默认情况下是自动编译的。<br />
2011-02-15 10:39:00
3139
原创 Android开发中Eclipse如何重新编译整个工程
<br /> 在一个项目中,如果我们想要对全部类文件及配置文件进行重新编译,在Eclipse可以采取如下办法:<br />在Eclipse下,选中Project下的Clean一项,进入之后可以看到Clean all projects选后点“OK”就可以了。这时我们再打开Eclipse中用来保存编译文件的classes文件就可以看到刚才编译的。
2011-02-15 10:22:00
15338
原创 xp下android开发环境建立
<br />1、首先安装Java开发环境:jdk-6u14-windows-i586.exe<br />安装好后还必须设置好Java开发环境的环境变量。<br /> <br />2、安装esclips(Java开发工具)也是android应用程序开发工具。<br /> <br />3、安装ADT(android开发工具包插件)<br /> <br />4、安装android的sdk。<br /> <br />(未完善~先写下这个思路~有空再完善具体步骤)
2011-02-11 17:30:00
1344
原创 NFS挂载嵌入式Linux根文件系统
<br /> 之前转载过一篇《nfs挂载android根文件系统》,但是自己一直都没做成功过,之前因为挂载普通嵌入式Linux根文件系统总是在内核刚启动时,开发板就不向串口打印信息了,而是直接打印到开发板lcd屏上,我想这肯定是uboot的启动参数没有设置正确。但是由于找工作的原因一直都没有去解决。<br /> 今天由于必须用nfs挂载android根文件系统,又重新回到这样一个问题中来,没有设置正确的uboot启动参数,经过多次尝试,终于能让开发板向串口打印信息了。具体设置的uboot的启动参数
2011-01-17 20:31:00
3709
1
转载 Android文件系统的制作
<br />1、android文件系统的结构<br />android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。因此,我们可以把ramdisk.img里的所
2011-01-16 13:39:00
2142
转载 在虚拟机上增加硬盘
<br />1、先将虚拟机Power Off,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a new virtual disk”,分配容量,其他默认配置就可以了。<br />2、启动虚拟机系统,用root登陆,利用 # ls /dev/sd* 的命令可以看到最后有一个sdb 或sdc(如果是添加的第三块硬盘会是sdc),它没有sdb1和sdb2或sdc1和sdc2之类的设备文件,说明系统检查出来了这块硬盘但还没有分区格
2011-01-13 19:52:00
2666
原创 Android内核移植到2440A
今天把android内核交叉编译后移植到我的2440开发板,下面是一些心得。 1、从http://code.google.com/p/android/downloads/list上下载linux-2.6.25-android-1.0_r1.tar.gz 2、解压到任意目录下,解压命令为tar tar –zxvf linux-2.6.25-android-1.0_r1.tar.gz。 3、解压2440板的交叉编译工具arm-linux-gcc-3.4.1.tar.bz2命令为tar xjvf arm-linu
2011-01-10 20:55:00
3494
原创 Android移植到2440A
一直在寻思着怎么移植Android到我的2440开发板上,自从找工作,就一直把这事给耽搁了,现在找到工作了,也没什么时间,但是还是要抽出时间来完成这个任务。 今天开始了,要移植首先的有源码供你编译,供你移植啊。所以,我们这里的第一步就是获得源码。到网上找了很多资料,稍微让自己有点思路。应该有两种吧~~(这里暂且这样说,还不确定):(1):移植android内核+移植android文件系统(2):一、获得源码 在网上找了很久,看到的资料都是一样的,都是以Ubuntu为版本的一个参考。
2011-01-10 20:29:00
3469
原创 linux中kmalloc()与vmalloc()
琢磨了很久也参考了很多资料,发现很多都说的有点含糊,在这里先介绍一下Linux中对实际内存的一个分配,Linux内核将实际内存(注意是实际内存,这里暂且考虑不大于1G的内存)分为三个区段:可用于DMA的内存、常规内存以及高端内存。这里只介绍一下高端内存与地段内存。 高
2011-01-04 09:51:00
3138
原创 io内存的页表访问与非页表访问
今天看LDD3时发现了这样一段话,破解了我一直以来在驱动编写时io内存的访问中所带来的困惑。 这段话的内容是这样:根据计算机平台和所使用的总线不同,i/o内存的访问可能是、也可能不是通过页表来访问的,如果访问时经由页表进行的,那么内核必须首先安排物理地址使其对设备驱动程序可见(这就意味着在进行任何i/o之前必须先调用ioremap()函数)。如果访问无需页表,那么i/o内存区域就非常类似于i/o端口,可以使用适当形式的函数来读写他们。------------------------------
2011-01-03 19:43:00
1618
原创 独立编址与统一编址
<br />在不同的系统中,I/O端口的地址编排有两种形式:<br />存储器统一编址和I/O独立编址。 <br /><br />存储器统一编址(存储器映像编址):<br />在这种编址方式中,I/O端口和内存单元统一编址,<br />即把I/O端口当作内存单元对待,<br />从整个内存空间中划出一个子空间给I/O端口,<br />每一个I/O端口分配一个地址码,<br />用访问存储器的指令对I/O端口进行操作。 <br /><br />存储器统一编址的优点是:<br />I/O端口的数目几乎不受限制;
2011-01-03 19:21:00
8331
uvc_common-1.5.20_aar包.zip
2020-07-31
Android应用框架原理与程序设计+源码.rar
2011-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人