arm-linux

http://armboard.taobao.com/

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  512 随笔 :: 0 文章 :: 48 评论 :: 115万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

02 2012 档案

摘要:高通MSM8260/8660 高通的处理器可能是市面上最为常见的了,首先我们就来看一下高通的双核处理器。 现如今手机上使用的高通MSM8260和MSM8660这两款处理器除去支持的网络制式不一样和各机型默认的主频有所差异之外并没有其他区别,所以我们挑选了两款比较有代表性的机型-HTC G18和小米M1来进行跑分。小米(左)和G18(右)超级兔子跑分 高通MSM8260/8660内置有两个应用处理器内核,原始主频均为1.5GHz,512KB 二级缓存(Cortex A9使用1MB L2 Cache),45纳米工艺,支持LPDDR2 1066的内存,采用高通基于ARM v7指令集而自行开发的Sco 阅读全文
posted @ 2012-02-29 14:24 arm-linux 阅读(2773) 评论(1) 推荐(1) 编辑

摘要:作者: 李先静 xianjimli@gmail.com 日期: 2010-01-14 本文介绍了 Android 的 framebuffer 的整体架构,图文并茂,比较清晰。文章转自 http://www.limodev.cn/blog简介FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的。所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿,所以花了一些去研究,这里做点笔记供大家参考,源代码是基于高通平台的,这些代码在网上都可以下载。FrameBuffer 的相关组件如下图所示:SurfaceFlinger 阅读全文
posted @ 2012-02-29 11:20 arm-linux 阅读(5487) 评论(0) 推荐(1) 编辑

摘要:这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理清思路,另一个原因就是以后当这块内容忘记的时候,能快速的通过这个记录捡起来。 一. android显示系统的建立 我们看SurfaceFlinger的定义就知道,它其实是一个Thread, 因此SurfaceFlinger的初始化工作就理所当然的放在了SurfaceFlinger线程中,详见readyToRun()@SurfaceFlinger.cp 阅读全文
posted @ 2012-02-29 10:54 arm-linux 阅读(16493) 评论(0) 推荐(3) 编辑

摘要:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx经过上面几节的铺垫,终于要来重点了,由于内核的进程调度和中断(中断还没讲,不过这里会大概的说说),它们都会进入内核共用内核的资源。所以,只要一不留神,自己进程的资源就会在不经意的情况下被别的进程修改了。这节将介绍并讨论如何解决。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是并发所谓的并发,就 阅读全文
posted @ 2012-02-27 10:17 arm-linux 阅读(1068) 评论(1) 推荐(1) 编辑

摘要:本帖大体上描述Linux kernel为解决并发导致的竞态所提供的内核API(主要是信号量和自旋锁)之间的区别,侧重于使用方面。代码级的阅读比较打算另开一贴。因为程序的并发执行而导致的竞态是Linux内核中一个非常复杂的方面。对于设备的驱动程序开发者而言,熟悉Linux内核提供的并发互斥的处理机制相当重要。所谓竞态,简而言之,是多个内核线程有可能对同一资源进行操作时可能导致的内核数据紊乱的行为。共享数据是并发的根本原因。并发的来源—我把并发来源分为两个大的方面来分别进行讨论:单处理器和多处理器。1.单处理器对于单处理器而言,并发主要来自于中断,可抢占的内核和各种延迟队列。2.多处理器多处理器的 阅读全文
posted @ 2012-02-26 18:50 arm-linux 阅读(890) 评论(0) 推荐(0) 编辑

摘要:本文重点针对HDMI在android上的应用,而比较相关的就是overlay机制。overlay在这里只是简单的介绍,后续会有文章再专门详述。 我没记错的话,高通从7X30开始,平台就可以支持HDMI(1.3)输出了。只不过在7x30上通过RGB接口外接一颗HDMI的transmitter来实现;而到了8系列(8x60),高通把这颗IC也集成了,直接就提供HDMI的输出了。(这样下去,以后渐渐的把外围器件都集成了,做底层的估计要失业了,做硬件的似乎工作量也没多少了)。 先来看看HW的能力,下图是MDP4.0的结构图: 可以看到,MDP4内部有4个overlay pipe,2个是for UI(R 阅读全文
posted @ 2012-02-25 16:05 arm-linux 阅读(8083) 评论(1) 推荐(0) 编辑

摘要:1 FrameBuffer的发展历史计算机研究者从很早开始已经开始讨论理论上FrameBuffer的优点,但却一直苦于没有能力生产一台拥有足够内存的计算机。1969年,贝尔实验室的JoanMiller试验了第一个已知的FrameBuffer。该设备显示了一幅3位位深的图片。然而,直到20世纪70年代,集成电路的内存芯片上的进展才使得制造一个可以显示标准视频图像的FrameBuffer成为可能。1972年,Richard Shoup在施乐帕洛阿尔托研究所里设计了SuperPaint系统,该系统拥有311,040字节的内存,并能存储640*480像素8位位深的图片。这些内存分散在16个回路电板上, 阅读全文
posted @ 2012-02-25 10:22 arm-linux 阅读(6864) 评论(0) 推荐(0) 编辑

摘要:做视频采集与处理,自然少不了要学会分析YUV数据。因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264、MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析,所以,了解如何分析YUV数据流对于做视频领域的人而言,至关重要。本文就是根据我的学习和了解,简单地介绍如何分析YUV数据流。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。 与我们熟知的RGB类似,YUV也是一种 阅读全文
posted @ 2012-02-22 15:44 arm-linux 阅读(1393) 评论(0) 推荐(1) 编辑

摘要:YUV主要的采样格式主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2x2 个点保存一个 Cr 和Cb 值, 图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 4 个点需要 8x3=24 bites(如下图第一个图). 而现在仅需要 8+(8/4)+(8/4)=12bites, 平均每个点占12bites(如下图第二个图)。这样就把图像的数据压缩了一半。 上边仅 阅读全文
posted @ 2012-02-15 16:13 arm-linux 阅读(2288) 评论(0) 推荐(2) 编辑

摘要:Andrew Huang <bluedrum@163.com> 转载请注明作者及联络方式 在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解. YUV的原理是把亮度与色度分离,研究证明,人眼对亮度的敏感超过色度。利用这个原理,可以把色度信息减少一点,人眼也无法查觉这一点。 YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度, 阅读全文
posted @ 2012-02-15 16:08 arm-linux 阅读(46069) 评论(3) 推荐(3) 编辑

摘要:了解液晶顾名思义,液晶显示器(Liquid Crystal Display,简称LCD)就是使用了“液晶”(Liquid Crystal)作为材料的显示器,那什么是液晶呢?其实,液晶是一种介于固态和液态之间的物质,当被加热时,它会呈现透明的液态,而冷却的时候又会结晶成混乱的固态,液晶是具有规则性分子排列的有机化合物。液晶按照分子结构排列的不同分为三种:类似粘土状的Smectic液晶、类似细火柴棒的Nematic液晶、类似胆固醇状的Cholestic液晶。这三种液晶的物理特性都不尽相同,用于液晶显示器的是第二类的Semitic液晶,分子都是长棒状的,在自然状态下,这些长棒状的分子的长轴大致平行。 阅读全文
posted @ 2012-02-14 15:35 arm-linux 阅读(28907) 评论(2) 推荐(4) 编辑

摘要:帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、游戏、影视软件等可视化应用时都必须用到帧缓冲技术,而现在随着消费逐渐娱乐化的大趋势,可视化应用已经在产品开发中越来越重要,因此,对于帧缓冲技术的理解和掌握就非常重要了。1 Frambuffer介绍 帧缓冲在linux体系中居于上层应用和底层显示设备之间,如下图所示。它的设计意图是对上层应用屏蔽掉低层不同硬件的操作细节:对于不同厂家不同类型的显示硬件,由于各自厂商在技术上扬长避短的需要,所以在具体的细节比如寄存器数量和种类的设计. 阅读全文
posted @ 2012-02-07 15:05 arm-linux 阅读(2819) 评论(0) 推荐(0) 编辑

摘要:arm-linux启动过程1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析stext函数前,先介绍此时内存的布局如下图所示在开发板tqs3c2440中,SDRAM连接到内存控制器的Bank6中,它的开始内存地址是0x30000000,大小为64M,即0x200 阅读全文
posted @ 2012-02-01 22:55 arm-linux 阅读(7305) 评论(0) 推荐(0) 编辑

摘要:内核的引导步骤如下:(1)用U-boot 的mkimage 工具处理内核映像zImage。(2)通过网络、串口、U 盘、SD 卡等方式将处理过的内核映像传输到SDRAM 的一定位置(一般使用0x30008000)(3)然后使用”bootm"等内核引导命令来启动内核。 为什么要用U-boot 的mkimage 工具处理内核映像zImage?因为在用bootm 命令引导内核的时候,bootm 需要读取一个64 字节的文件头,来获取这个内核映象所针对的CPU 体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm 才能为OS 设置好启动环境,并跳入内核映 阅读全文
posted @ 2012-02-01 09:45 arm-linux 阅读(1452) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示