- 博客(50)
- 资源 (3)
- 收藏
- 关注
转载 arm-linux-gcc工具链下载
http://www.handhelds.org/download/projects/toolchain/http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/http://so.hustonline.net/list.aspx?word=arm-linux-gcc-4.1.2&schoolInput=%CB%F9%D3%D0%D1%A7%D
2009-06-30 14:40:00
1366
转载 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
2009-06-30 11:47:00
559
转载 About TEXTADDR, ZTEXTADDR, PAGE_OFFSET etc
Initial definitions-------------------The following symbol definitions rely on you knowing the translation that__virt_to_phys() does for your machine. This macro converts the passedvirtual
2009-06-30 11:43:00
616
转载 read 系统调用剖析
大部分程序员可能会有这样的疑问:当在程序中调用库函数 read时,这个请求是经过哪些处理最终到达磁盘的呢,数据又是怎么被拷贝到用户缓存区的呢?本文介绍了从 read系统调用发出到结束处理的全过程。该过程包括两个部分:用户空间的处理、核心空间的处理。用户空间处理部分是系统调用从用户态切到核心态的过程。核心空间处理部分则是 read 系统调用在 linux 内核中处理的整个过程。
2009-06-29 14:31:00
1351
转载 Linux 初始 RAM 磁盘(initrd)概述
Linux® 初始 RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM 磁盘卸载,并释放内存。在很多嵌入式Linux 系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM 磁盘,包括如何
2009-06-29 10:36:00
679
转载 initrd 机制解析
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd的处理流程。最后通过对
2009-06-29 10:16:00
734
转载 ARM中MMU工作原理
本文描述基于存储器管理单元的系统结构, 包含以下内容:· 关于存储器管理单元的结构· 存储器访问的顺序· 转换过程· 访问权限· 域· 异常· CP15 寄存器http://embedded.homeunix.org 30/06/2003Page 3 of 33.1 关于存储器管理单元的结构MMU 存储器系统的结构允许对存储器系统的精细控制
2009-06-26 20:29:00
1271
转载 Linux 初始 RAM 磁盘(initrd)概述--摘自IBM
Linux® 初始 RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM 磁盘卸载,并释放内存。在很多嵌入式Linux 系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM 磁盘,包括
2009-06-26 20:04:00
830
转载 Linux MMU summary
1. 物理页申请(allocation) 核心算法是:Binary Buddy Allocator. 1. 空闲块管理 每个zone有一个free_area数组, 第0个元素表示的块大小是1个页, 第1个元素表示的块大小是2个页...最大的块大小是512个页. 每个区有一个bitmap, 每一位用来记载一对buddy的使用状态, 如果bit
2009-06-26 17:17:00
3080
转载 linux设备模型深探(2)
在前面一篇linux设备模型深探(1)我们详细了解了底层元素kset,kobject,ktype之间的关系后,本节讲解下驱动模型中另外几个概念(bus、driver、device)为后面具体分析特定驱动(platform,pci)模型打个基础。 BUS在设备模型中,所有的device都是通过总线bus
2009-06-26 16:27:00
1245
转载 linux设备模型深探(1)
一:前言Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但是。理解这部份内容,对于我们理解linux设备驱动的结构是大有裨益的。我们不但可以在编写程序程序的时候知其然,亦知其所以然。又可以学习到一种极其精致的架构设计方法。由于之前已经详细分析了sysfs文件系统。所以本节的讨论主要集中在设备模型的底层实现上。上层的接口,如pci.
2009-06-26 16:26:00
1167
转载 Linux设备驱动模型之platform总线
1 平台设备和驱动初识platform是一个虚拟的地址总线,相比pci,usb,它主要用于描述SOC上的片上资源,比如s3c2410上集成的控制器(lcd,watchdog,rtc等),platform所描述的资源有一个共同点,就是在cpu的总线上直接取址。平台设备会分到一个名称(用在驱动绑定中)以及一系列诸如地址和中断请求号(IRQ)之类的资源.struct platform
2009-06-26 15:50:00
1248
转载 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
从 2.4 到 2.6,Linux 内核在可装载模块机制、设备模型、一些核心 API等方面发生较大改变,设备驱动开发人员面临着将驱动从 2.4 移植到 2.6 内核,或是使驱动同时支持2.4 与 2.6内核的任务。站在设备驱动开发人员的角度,驱动由一个或几个外部可加载内核模块组成,本文针对 2.6内核里模块机制的改变对编写设备驱动程序的影响,从内核模块的编译、装载时的版本检查、初始化与
2009-06-26 15:05:00
592
转载 Linux Platform Device and Driver
从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。 Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device driver
2009-06-26 14:25:00
1157
转载 platform_device和platform_driver
首先介绍一下注册一个驱动的步骤:1、定义一个platform_driver结构2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量3、实现其probe、remove等函数看platform_driver结构,定义于include/linux/platform_device.h文件中:struct platform_driver {
2009-06-26 14:16:00
876
转载 Linux 2.6.11 MTD驱动情景分析
一、Flash硬件驱动层:硬件驱动层负责在init时驱动Flash硬件,LinuxMTD设备的NOR Flash芯片驱动遵循CFI接口标准,其驱动程序位于drivers/mtd/chips子目录下。NAND型Flash的驱动程序则位于/drivers/mtd/nand子目录下二、MTD原始设备:原始设备层有两部分组成,一部分是MTD原始设备的通用代码,另一部分是
2009-06-26 13:50:00
790
转载 x86平台编译Android
1.设置编译选项为make -j5 TARGET_ARCH=x86 TARGET_PRODUCT=generic TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_OS=linux LOCAL_PRELINK_MODULE=false2.build/core/envsetup.mk 中 91行 设置为x86(该步骤可以省略)3.修改
2009-06-24 15:34:00
4706
转载 浅析yaffs2文件系统被mount的梗概流程
浅析yaffs2文件系统被mount的梗概流程《浅析linux下mtd设备onenand存储器的分区和节点创建流程及yaffs2文件系统挂载》在init.rc脚本中on initloglevel 3 ... mkdir /system mkdir /local 0777 system system mkdir /data 0771 system system# mo
2009-06-24 15:23:00
7774
转载 浅析如何添加自己的ko到make menuconfig中
浅析如何添加自己的ko到make menuconfig中其实向make menuconfig添加自己的选项,仅仅是为了向driver传递由用户自己决定的几个不同的宏值.1.luther@gliethttp:/vobs/works/lnx2625pxa/drivers/net/wireless$ mkdir bcmxxx2.luther@gliethttp:/vobs/works/lnx2625px
2009-06-24 15:20:00
1863
转载 Android build system
[First written by Steve Guo, please keep the mark if forwarding.]Device/docs/design/build-system.html is a good start point to understand Android build system. In this topic,
2009-06-24 15:18:00
1338
转载 miscdevice、platform_device、platform_driver的区别
最近研究Linux设备驱动程序遇到混乱,请大侠过来理理头绪。Linux设备模型中:bus_type、device、device_driver《Linux设备驱动程序》的linux设备模型章中说到设备模型中,所有设备都通过总线相连。添加设备devA,必须指定其device结构体的bus_type域,初始化其他域,然后调用device_register(&devA),将设备devA注册到指定总线。添加
2009-06-24 10:45:00
1586
转载 Android skia 和open skia的比较
1. Android对include的内容进行了分类,如:animator, core, effects, graphics,… 而opensource的只归类了一个corecg。绝大部分内容类似。2. 同样Android对source也进行了归类。Opensource 的sgl目录对应到Android的src/core目录Opensorce的sgl ßà Andr
2009-06-23 10:54:00
4071
转载 浅谈Google Skia图形引擎
2008 年九月,Google 宣布以改良过的 WebKit 为核心的网络浏览器 Chrome,揭露了众多新特征,比方说崭新的 [V8] JavaScript (ECMAscript) 执行引擎,或许因为太亮眼,掩蔽了所使用另一个开放原始码项目 [skia], 后者是个 2D 向量图形处理函式库,包含字型、坐标转换,以及位图都有高效能且简洁的表现。不仅用于 Google Chrome 浏览器,新兴
2009-06-23 10:53:00
2194
转载 Android原生(Native)C开发之十:用Code::Blocks来开发
-- 用Code::Bocok搭建Android Native可视化开发环境可能很多朋友一直用文本编辑器来写Android的程序,经常会出现一些变量写错一个字母或少逗号分号的情况,直到编译时才会有错误提示,而且效率不高。如果你正为这个苦恼的话,我郑重且强烈地向你推荐:Code::Blocks!关于Code::Blocks,我就不多介绍了,只记得三年前用过后,就很少用Dev C++及
2009-06-23 10:14:00
1240
转载 Android原生(Native)C开发之九:OpenGL ES初探
在还没有研究Android的原生(Native)开发之前,就一直很好奇google用的是哪一种OpenGL ES的实现,也写过一些Java 3D的代码去测试3D的性能,但结果很不理想(http://blog.sina.com.cn/s/blog_4a0a39c30100auh6.html),显示一个MD2低模,也只能达到 6 FPS左右,后来也尝试过通过SDL来实现的3D:TinySDGL,g
2009-06-23 10:13:00
1536
转载 Android原生(Native)C开发之八:Toolchain环境搭建篇
Android开源已经有一段时间了,一直没有去研究它,一是没有时间,二是没有Linux环境去测试,三是块头太大了(源码2G,加编译要5G左右)。最近项目差不多近尾声了,终于可以喘口气,有时来好好研究一下Android的源码了,就在WinXP中从网上下载了Android的源码,一开始只是想看看自已感兴趣的部分(GUI、OpenGL ES、Audio等),后来在网上找到了一些在Cygwin下搭建原生开
2009-06-23 10:12:00
1777
转载 Android原生(Native)C开发之七:libjpeg移植笔记
JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是网上比较常见的图像文件格式,以小尺寸著称,但其最大的缺点是它是一种有损压缩的图像格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高
2009-06-23 10:11:00
1213
转载 Android原生(Native)C开发之六:libpng移植笔记
libpng(http://www.libpng.org/)是读取PNG(Portable Network Graphic Format)文件的最官方的函数库,所以在介绍libpng之前,有必要先介绍下PNG文件。PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Net
2009-06-23 10:10:00
949
转载 Android原生(Native)C开发之五:zlib移植笔记
zlib(http://www.zlib.net/)是一套非常流行的且开源的压缩、解压缩库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE演算法,最初是为libpng函式库所写的,后来普遍为许多软体所使用。zlib当前版本是 1.2.3,其移植性非常好,本人已经在Windows、Linux、WinCE、
2009-06-23 10:09:00
1292
转载 Android原生(Native)C开发之四:SDL移植笔记
SDL(Simple DirectMedia Layer)是一套开放源码的跨平台多媒体开发库,使用C语言写成。SDL提供了多种图像、声音、键盘等的实现,可配置性与移植性非常高,开发者可以开发出跨多个平台(Linux、Windows、Mac OS X、Symbian、Widnows Mobiel等嵌入式系统,当然也包括今天要移植的平台:Android)的应用,目前SDL多用于开发游戏、模拟器、媒体播
2009-06-23 10:08:00
1061
转载 Android原生(Native)C开发之三:鼠标事件篇(捕鼠记)
在做SDL至Android的移植时,键盘事件是能正常捕获到,看了SLD的源码,发现用的device是 /dev/tty0,但是鼠标叫是不能成功捕获,总是得到 0,运行命令查看devices时,显示如下: # cat /proc/bus/input/devicescat /proc/bus/input/devicesI: Bus=0000 Vendor=0000 Produ
2009-06-23 10:06:00
1172
原创 Android原生(Native)C开发之二:framebuffer篇
如对Android原生(Natvie)C开发还任何疑问,请参阅《Android原生(Native)C开发之一:环境搭建篇》:http://blog.sina.com.cn/s/blog_4a0a39c30100auh9.html 虽然现在能通过交叉环境编译程序,并push到Android上执行,但那只是console台程序,是不是有些单调呢?下面就要看如何通过Linux的 framebuf
2009-06-23 10:05:00
1312
转载 Android原生(Native)C开发之一:环境搭建篇
Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。在Linux下面,你可以自已编译一个交叉编译环境,但Windows下面,就比较复杂(也可以在cygwin中编译一个),但你可以选择下载一个现成的交叉编译环境:http://www.codesourcery.com/gnu_tool
2009-06-23 10:01:00
975
原创 Android cupcake源代码获取和编译 for Ubuntu 9.04
Android cupcake get Source and Builder for Ubuntu 9.04编译环境Ubuntu 9.04 Desktop下载和编译流程根据http://source.android.com/download的说明,成功的下载了所有源代码,整个目录文件接近2G前期准备:安装 git工具内核, 命令 sudo apt-get install
2009-06-23 09:49:00
1184
1
转载 Android原生(Native)C开发:编译选项小结
在Android的所有源码中,只有最顶层的目录有一个Makefile,其它所有项目都是调用这个文件进行编译。如果用"showcommands"打出详细编译信息,你会看到大量的编译选项,其实根本不需要这么多,做如下步骤: 将所有头文件复制到 toolchain 的 include 目录,可减少大量的 -I (头文件查找目录)选项,具体请参见:Android原生(Native)C开发之八:
2009-06-23 09:46:00
1293
转载 用android build system 编译一个最小的android平台
首先按照http://source.android.com/download这个网站的方法配置系统然后下载android平台文件repo init -u git://android.git.kernel.org/platform/manifest.gitrepo sync在平台所在文件夹下运行. build/envsetup.sh然后运行在build/core/main.mk文件中的ifeq ($
2009-06-23 09:41:00
1428
1
转载 Android编译环境
Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的Android.mk来给
2009-06-23 09:32:00
4773
转载 android 的图形引擎 skia
简介1Google Android 使用 skia 作为其核心图形引擎。skia 也是 Google Chrome 的图形引擎。Skia 图形渲染引擎最初由 Skia 公司开发,该公司于 2005 年被 Google 收购。Skia 与 Openwaves (现在叫 Purple Labs)V7 vector graphics engine 非常类似,它们都来自于 Mike Reed
2009-06-22 18:54:00
3173
转载 Ubuntu下编译android的linux内核
1、构建交叉编译环境Android的默认硬件处理器是ARM的,因此我们需要在自己的host机器上构建交叉编译环境。来到CodeSourcery,(http://www.codesourcery.com /gnu_toolchains/arm/download.html),点击GNU/Linux对应的链接,再点击IA32 GNU/Linux Installer链接直接下载。把arm-2008q3-7
2009-06-22 17:20:00
2344
转载 Ubuntu上编译Android过程
建立机器人来源, Linux操作系统, Ubuntu的,首先建立环境, 谷歌建议Ubuntu的系统和其他软件包,在此基础上下载编译Android代码。 下面是顺序描述的程序,我们将安装操作系统, 编译程序到结束,过程如下。 1. Ubuntu Linux操作系统安装软件包。 使用 ubuntu-8.04.1 desktop-i386系统. - 第一,获得ISO映像的Ubuntu
2009-06-22 17:17:00
1213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人