<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程华春的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenghc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenghc]]></copyright><item><title><![CDATA[Linux操作系统进程间通信概述]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6857895</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6857895</guid><author>chenghc</author><pubDate>Mon, 10 Oct 2011 09:38:52 +0800</pubDate><description><![CDATA[Linux进程间通信(IPC)有几种方式，下面将将简单的简述一下：
　　一。管道(pipe)
　　管道是Linux支持的最初IPC方式，管道可分为无名管道，有名管道等。
　　(一)无名管道，它具有几个特点：
　　1) 管道是半双工的，只能支持数据的单向流动;两进程间需要通]]></description><category></category></item><item><title><![CDATA[Android怎么区分一个动态库是否为prelink过的]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6793115</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6793115</guid><author>chenghc</author><pubDate>Tue, 20 Sep 2011 11:42:19 +0800</pubDate><description><![CDATA[在Android中，经过prelink过的动态库最后4字节为“PRE ”（注意“PRE”后面有一个空格），在”PRE“前面四个字节就是prelink-map文件中指定的load地址。
下面是一段判断一个动态库文件是否为prelink过的shell脚本，输入参数是文件名：
#p]]></description><category></category></item><item><title><![CDATA[嵌入式系统USB CDROM虚拟光驱驱动程序开发]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6697507</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6697507</guid><author>chenghc</author><pubDate>Thu, 18 Aug 2011 11:02:52 +0800</pubDate><description><![CDATA[带U盘功能的的USB接口设备已经越来越常见了。如果能够把产品说明书或者产品设备驱动程序做成一个USB CDROM，那该多方便。
   
   假设：
        你已经有了USB mass storage驱动。你的任务是在此基础上增加一个USB CDROM。]]></description><category></category></item><item><title><![CDATA[UML用例图]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6204425</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6204425</guid><author>chenghc</author><pubDate>Thu, 24 Feb 2011 11:00:00 +0800</pubDate><description><![CDATA[<br /> <br /> <br />用
例图是软件需求分析到最终实现的第一步，它描述用户如何使用系统及使用系统什么样的功能。用例图从业务角度上体现谁来使用系统、用户希望系统提供什么样的
服务，以及用户需要为系统提供的服务，也便于软件开发人员最终实现这些功能。用例图在开发中被广泛的应用，但是它最常用来描述系统提供了什么样的功能给什
么样的用户使用。<br /><br />      
在官方文档中用例图包含六个元素，分别是：执行者(Actor)、用例(Use
Case)、关联关系(Associa]]></description><category></category></item><item><title><![CDATA[blcr加速android启动速度遇到的问题及解决方法]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6183582</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6183582</guid><author>chenghc</author><pubDate>Mon, 14 Feb 2011 11:36:00 +0800</pubDate><description><![CDATA[<br />最近在移植blcr-0.8.2到android，按照网上的资料移植完后，系统可以正常启动运行，但是设置语言后重新启动，还是原来的语言，而persist.sys.language和persist.sys.country属性又是设置后的语言属性。通过查找源代码，发现android在启动虚拟机的时候会通过读取persist.sys.language和persist.sys.country属性来设置本地语言。由此可见导致上述情况的发生是因为没有正确加载persist.sys.language和persi]]></description><category></category></item><item><title><![CDATA[给android增加屏幕校准]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6152348</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6152348</guid><author>chenghc</author><pubDate>Wed, 19 Jan 2011 14:10:00 +0800</pubDate><description><![CDATA[android原始版本里是没有屏幕校准功能的，tp坐标到lcd坐标是完全按照线性关系来转换的。例如，tp坐标是(Xt

,Yt

)分辨率是（Wt

 x Ht

），lcd坐标是(X,Y)，分辨率是(W x H)，则 X=(Xt

*W)/Wt，

Y=(Yt

*H)/Ht

。但是一般触摸屏不是完全线性的，自然转换关系也就不一样了，好在有tslib，能帮我们解决这个问题。但是android里没有tslib，我们也不需要完全将tslib移植过来，只需要其中根据采样点生成转]]></description><category></category></item><item><title><![CDATA[opencore内部调度]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6048134</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6048134</guid><author>chenghc</author><pubDate>Wed, 01 Dec 2010 16:31:00 +0800</pubDate><description><![CDATA[opencore内部调度<br />1引言<br />多媒体框架是非常重要而又令人关心的模块，尤其在android的系统上，多媒体播放效果如何，对其框架了解是非常必要的。<br />多媒体中的调度问题，是个背后的故事，但却对性能影响至关重要，本文并非全面分析多媒体框架，旨在探讨媒体框架调度方面与传统的多线程应用间的差异。 2基本知识<br />1.        多媒体框架：<br />宏观上看多媒体框架一般包含：engine、parser、codec、output，engine为控制部分，parser为文]]></description><category></category></item><item><title><![CDATA[BootLoader与Linux内核的参数传递]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6048077</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6048077</guid><author>chenghc</author><pubDate>Wed, 01 Dec 2010 16:16:00 +0800</pubDate><description><![CDATA[BootLoader与Linux内核的参数传递<br />在
嵌入式系统中，BootLoader
是用来初始化硬件，加载内核，传递参数。因为嵌入式系统的硬件环境各不相同，所以嵌入式系统的BootLoader
也各不相同，其中比较通用的是U-Boot，它支持不同的体系结构，如ARM，PowerPC，X86，MIPS
等。本文着重介BootLoader与内核之间参数传递这一基本功能。本文的硬件平台是基于AT91RM9200
处理器系统，软件平台是Linux-2.6.19.2 内核。内核映像文件为zIm]]></description><category></category></item><item><title><![CDATA[内核启动过程设备初始化的时机及顺序]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6047817</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6047817</guid><author>chenghc</author><pubDate>Wed, 01 Dec 2010 15:07:00 +0800</pubDate><description><![CDATA[内核启动过程设备初始化的时机及顺序<br />linux内核从启动开始到设备模型初始化完毕经历的函数 start_kernel() ——> rest_init()——>kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND)——kernel_init——>do_basic_setup()——>driver_init()——>devices_init()——>kobject_create_and_add() －－－－－1） <br />
所有标识为]]></description><category></category></item><item><title><![CDATA[stagefright与opencore对比]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6047785</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6047785</guid><author>chenghc</author><pubDate>Wed, 01 Dec 2010 14:57:00 +0800</pubDate><description><![CDATA[<br />原文：http://blog.chinaunix.net/u2/87831/showart_2399593.html<br /> <br /> <br />stagefright与opencore对比<br /><br /><br />1引言<br />
Android froyo版本多媒体引擎做了变动，新添加了stagefright框架，并且默认情况android选择stagefright，弃用之前的opencore，仅仅对opencore中的omx-component部分做了引用。<br ]]></description><category></category></item><item><title><![CDATA[Android的MediaRecorder架构介绍]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6045663</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6045663</guid><author>chenghc</author><pubDate>Tue, 30 Nov 2010 15:48:00 +0800</pubDate><description><![CDATA[<br />原文地址：http://blog.chinaunix.net/u1/44301/showart_2412232.html<br /> <br />Android的MediaRecorder架构介绍第一部分 MediaRecorder概述<br />
Android的MediaRecorder包含了Audio和video的记录功能
，在Android的界面
上，Music和Video两个应用程序
都是调用MediaRecorder实现的。<br />
MediaRecorder在底层是基]]></description><category></category></item><item><title><![CDATA[android 2.2 多媒体库OpenCore之PVPlayer构造过程]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/6043511</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/6043511</guid><author>chenghc</author><pubDate>Mon, 29 Nov 2010 18:14:00 +0800</pubDate><description><![CDATA[<br />         PVPlayer（即Packet Video Player）是OpenCore经过android包装后，提供给android多媒体播放的类。PVPlayer类文实现在OpenCore目录下的android/playerdriver.cpp文件中。在PVPlayer构造函数中实例化一个PlayerDriver类，生成一个播放器主线程，线程入口是PlayerDriver::startPlayerThread()函数，该函数通过调用PlayerDriver::playerThread]]></description><category></category></item><item><title><![CDATA[两则学习笔记：联合体union和异或^的妙用]]></title><link>https://blog.youkuaiyun.com/chenghc/article/details/1901236</link><guid>https://blog.youkuaiyun.com/chenghc/article/details/1901236</guid><author>chenghc</author><pubDate>Sun, 25 Nov 2007 00:45:00 +0800</pubDate><description><![CDATA[在嵌入式C精华中看到的，在此作为学习笔记，记录一下。1. 用联合体判断系统CPU是little-endian还是big-endian0x00000001在系统CPU为little-endian时在内存中的存放是 01 00 00 00 ，而当系统CPU为big-endian时在内存中的存放是 00 00 00 01.下面的函数返回值为1时，表示CPU是little-endian，反之则为b]]></description><category></category></item></channel></rss>