Android平台Bootloader的刷屏功能扩展设计

分享到:
198
下一篇 >

引言

    Android自2011年以来实现了计算机诞生以来*快速度的用户群体增长,目前Android以每天85万新激活数的速度快速征服世界,在世界范围内成为占有率*高的智能手机操作系统。根据赛诺的调研报告,Android系统在中国的市场份额高达74.7%。然而很多硬件制造商在旧设备的升级问题上动作缓慢。Android 4.0的配置要求比起之前的Android系统有较大的提高,导致很多厂商在中低端市场的新机型和主推机型都无法达到*低配置要求。根据市场的需求,低端Android手机存在着巨大商机。在低价格的情况下,如何实现高配置的要求,成为手机开发商研究的重点。

    对于Android系统,Bootloader是基于特定平台来实现的。Booloader是否解锁关系到各方的利益,解锁Bootloader将会给用户带来很大的好处,Android用户将能够自行根据需要刷写固件,去掉可能导致扣费的运营商服务,得到更加多样的Android体验。因此,本文根据定制的实际平台,提出了一种面向客户需求的实现Bootloader扩展功能的设计方案。

1 Bootloador的基本原理及功能介绍

    Bootloader(系统启动加载器),其实就是在系统启动之前运行的一段程序。Bootloader的作用是对硬件设备初始化,建立内存空间映像图,从而把系统的软件环境带到一个合适的状态。这样,系统在调用内核时就准备好真正的环境,*终引导系统正常启动。对于Android系统,通常并没有PC机那样的周件程序BIOS,因此Bootloader必须完成整个系统的加载任务。而且对于嵌入式系统,其硬件的差别也是很大的,在操作系统启动之前,必须完成这些硬件的初始化工作,这就导致嵌入式系统Bootloader的功能和具体实现都比PC系统复杂得多。

    LK(Linux Kernel)是小内核小操作系统,是AndroidBootloader的核心。在高通代码中,Android Bootloader位于bootable\bootloader\1k目录下,Bootloader的功能性设计主要在app\aboot.c下,aboot_init函数是LK的功能入口点。aboot_init的执行过程如下:

    ①设置NAND/EMMC读取信息页面大小;

    ②读取按健信息。判断是正常开机、进入fastboot,还是进入recovery模式;

    ③从NAND中加载内核;

    ④启动内核。实现刷屏功能可以在读取按键之前,所以Bootloader扩展功能的设计流程如图1所示。

2 LCD控制器及外围设备连接

2.1 LCD控制器介绍

    LCD控制器是Android手机开发项目中C6310芯片的必备模块,它负责将需要显示的数据,如操作界面、图像等送给LCD显示设备。在手机的应用中,LCD显示设备主要有以下几类:被动显示模式STN屏、主动显示模式TFT屏,以及主动模式OLED屏。根据显示颜色不同,又可以分为单色屏和彩色屏。LCD控制器不直接和LCD显示屏相连,而是和LCD驱动器相连,这样简化了接口信号数量和显示控制过程。LCD控制器时序由控制信号和图像数据两部分组成,其中控制信号包括VCLK、HSYNC、VSYNC,分别为像素时钟信号、行同步信号、帧同步信号。作为帧同步信号的VSYNC,每发出一个脉冲,都意味着新的一屏图像数据开始发送。而作为行同步信号的HSYNC,每发出一个脉冲,都意味着新的一行图像资料开始发送。在帧同步以及行同步的头尾都必须保留回扫时间。这样的时序安排起源于CRT显示器电子枪偏转所需的时间,但后来成为实际上的工业标准,因此TFT屏也包含了回扫时间。

    C6310芯片内部集成了一个LCD控制器,通常配置寄存器来控制其工作,命令和图像数据的传输由LCD主控制器自动完成。C6310的LCD控制器采用并行或串行接口工作时,*多支持3层图像合并(L1、L2、L3),L4层用作命令存储空间。命令存储空间中一个命令有20位,占用32位空间。**个0~17位对应LCD_CMD寄存器中0~17位;第19位用作命令、数据切换位。

你可能感兴趣: 嵌入式 图片
无觅相关文章插件,快速提升流量