一种终端启动时控制屏幕显示的方法及移动终端转让专利

申请号 : CN201010277611.2

文献号 : CN101923479B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 左剑

申请人 : 青岛海信移动通信技术股份有限公司

摘要 :

本发明涉及移动通信领域,公开了一种终端启动时控制屏幕显示的方法及移动终端。采用本发明的方法能够在终端启动的Bootloader启动阶段显示一幅静止画面,以及在内核启动阶段能够显示动画。本发明的方法包括:在运行启动引导程序时,初始化液晶显示屏LCD,并从内存中分配显存;在LCD和显存间建立DMA通道;将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;根据预先配置的控制参数控制LCD显示所述待显示数据。

权利要求 :

1.一种终端启动时控制屏幕显示的方法,其特征在于,包括:在运行启动引导程序时,初始化液晶显示屏LCD,并从内存中分配第一显存;在LCD和第一显存间建立直接存储器存取DMA通道;

将待显示数据拷贝到第一显存中,并通过DMA通道发送到LCD;

根据预先配置的控制参数控制LCD显示所述待显示数据;

触发内核程序启动,在运行内核程序时,打开系统中的图形终端功能,利用图形终端功能定时更新第一显存中的待显示数据,并通过DMA通道发送到LCD;

根据预先配置的控制参数控制LCD显示更新后的待显示数据。

2.如权利要求1所述的方法,其特征在于,所述打开系统中的图形终端功能之前,还包括:在内核程序的运行过程中,重新初始化LCD,并从内存中分配第二显存;在LCD和第二显存间建立DMA通道;

打开系统中的图形终端功能,利用图形终端功能定时更新第二显存中的待显示数据,并通过DMA通道发送到LCD;

根据预先配置的控制参数控制LCD显示更新后的待显示数据。

3.如权利要求1或2所述的方法,其特征在于,所述利用图形终端功能定时更新第一或第二显存中的数据具体为利用图形终端功能定时更新第一或第二显存中特定区域的待显示数据。

4.如权利要求1所述的方法,其特征在于,所述在LCD和第一显存间建立DMA通道具体为:将第一显存地址记录到DMA寄存器中;

根据DMA寄存器中的第一显存地址在LCD和第一显存间建立DMA通道。

5.一种终端启动时控制屏幕显示的方法,其特征在于,包括:触发内核程序启动,在运行内核程序时,初始化液晶显示屏LCD,并从内存中分配显存;

在LCD和显存间建立直接存储器存取DMA通道;

将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;

根据预先配置的控制参数控制LCD显示待显示数据;

打开系统中的图形终端功能,利用图形终端功能定时更新显存中的待显示数据,并通过DMA通道发送到LCD;

根据预先配置的控制参数控制LCD显示更新后的待显示数据。

6.如权利要求5所述的方法,其特征在于,所述利用图形终端功能定时更新显存中的待显示数据具体为利用图形终端功能在设定时间更新显存中特定区域的待显示数据。

7.一种移动终端,其特征在于,包括:

预启动单元,用于在运行启动引导程序时初始化液晶显示屏LCD,并从内存中分配显存;

通道建立单元,用于在LCD和显存间建立直接存储器存取DMA通道;

发送单元,用于将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;

第一显示单元,用于根据预先配置的控制参数控制LCD显示所述待显示数据;

更新单元,用于触发内核程序启动,并在运行内核程序时,打开系统中的图形终端功能,利用图形终端功能定时更新显存中的待显示数据,并通过DMA通道发送到LCD;以及第二显示单元,还用于根据预先配置的控制参数控制LCD显示更新后的待显示数据。

8.一种移动终端,其特征在于,包括:

内核启动单元,用于触发内核程序启动,在运行内核程序时初始化液晶显示屏LCD,并从内存中分配显存,在LCD和显存间建立直接存储器存取DMA通道,将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;

更新单元,用于打开系统中的图形终端功能,利用图形终端功能定时更新显存中的待显示数据,并通过DMA通道发送到LCD;

显示单元,用于根据预先配置的控制参数控制LCD显示待显示数据以及更新后的待显示数据。

说明书 :

一种终端启动时控制屏幕显示的方法及移动终端

技术领域

[0001] 本发明涉及移动通信领域,特别是涉及一种终端启动时控制屏幕显示的方法及移动终端。

背景技术

[0002] 智能手机的启动过程一般分为:Bootloader(启动引导程序)启动、内核启动以及应用程序启动。其中,Bootloader启动阶段主要初始化基本硬件,目的是使得智能手机能够启动,Bootloader启动阶段的初始化主要包括初始化存储器、串口以及启动频率,内核启动主要是启动操作系统以及加载应用程序(其中包括LCD初始化设置等),内核启动后再执行应用程序启动,应用程序开始启动后才可以播放动画以及进行其他的一些应用操作。 [0003] 现有的智能手机中,在普通的linux系统或android系统启动过程中,在Bootloader启动阶段屏幕一直是黑屏,在内核启动过程中,LCD(液晶显示屏)屏幕可以被初始化、并可以正常工作,但在内核启动过程中,屏幕中显示的初始内容不会再变化,即在内核启动的整个过程中手机屏幕通常只能显示静止的文字或者一幅静止的图像,例如“android”文字或者“linux小企鹅”图像等等。
[0004] 但由于目前智能手机的系统越来越复杂,启动的时间越来越长,对于习惯使用非智能手机的用户而言,现在智能手机的初始黑屏或者一幅静止图像的持续时间过长,显示单一。Ophone手机作为android手机的一种,开机后在内核启动过程中会显示一幅静止图片,并持续3-4秒,3-4秒后,内核启动完毕,开始启动应用程序,动画才会开始演示。 [0005] 如图1所示,为现有技术中智能手机的启动过程示意图,例如:开机后,首先是黑屏,然后依次进行Bootloader启动、内核启动,直到内核启动完毕后,开始应用程序启动,才能开始动画播放。但在在Bootloader启动、内核启动过程中,屏幕一直是黑屏。
[0006] 综上,现有的智能手机启动过程中,在Bootloader启动阶段屏幕一直是黑屏,在内核启动阶段,屏幕只能显示LCD初始时的一幅静止图片,直到应用程序启动开始后才会显示动画,导致现有的智能手机启动过程的Bootloader启动时屏幕无法显示以及Linux内核启动屏幕显示单一。
[0007] 发明内容
[0008] 本发明提供的终端启动时控制屏幕显示的方法,能够实现在Bootloader启动过程中显示一幅图片,解决现有智能手机Bootloader启动过程中屏幕不能显示的问题。 [0009] 本发明实施例提供的终端启动时控制屏幕显示的方法,能够实现在内核启动过程中显示动画,解决现有智能手机内核启动过程中屏幕显示单一的问题。
[0010] 一种终端启动时控制屏幕显示的方法,包括:
[0011] 在运行启动引导程序时,初始化液晶显示屏LCD,并从内存中分配第一显存;在LCD和第一显存间建立直接存储器存取DMA通道;
[0012] 将待显示数据拷贝到第一显存中,并通过DMA通道发送到LCD;
[0013] 根据预先配置的控制参数控制LCD显示所述待显示数据。
[0014] 一种终端启动时控制屏幕显示的方法,包括:
[0015] 触发内核程序启动,在运行内核程序时,初始化液晶显示屏LCD,并从内存中分配显存;
[0016] 在LCD和显存间建立直接存储器存取DMA通道;
[0017] 将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;
[0018] 根据预先配置的控制参数控制LCD显示待显示数据;
[0019] 打开系统中的图形终端功能,利用图形终端功能定时更新显存中的待显示 数据,并通过DMA通道发送到LCD;
[0020] 根据预先配置的控制参数控制LCD显示更新后的待显示数据。
[0021] 一种移动终端,包括:
[0022] 预启动单元,用于在运行启动引导程序时初始化液晶显示屏LCD,并从内存中分配显存;
[0023] 通道建立单元,用于在LCD和显存间建立直接存储器存取DMA通道; [0024] 发送单元,用于将待显示数据拷贝到显存中,并通过DMA通道发送到LCD; [0025] 第一显示单元,用于根据预先配置的控制参数控制LCD显示所述待显示数据。 [0026] 一种移动终端,包括:
[0027] 内核启动单元,用于触发内核程序启动,在运行内核程序时初始化液晶显示屏LCD,并从内存中分配显存,在LCD和显存间建立直接存储器存取DMA通道,将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;
[0028] 更新单元,用于打开系统中的图形终端功能,利用图形终端功能定时更新显存中的待显示数据,并通过DMA通道发送到LCD;
[0029] 显示单元,用于根据预先配置的控制参数控制LCD显示待显示数据以及更新后的待显示数据。
[0030] 本发明实施例提供的终端启动过程中控制屏幕显示的方法、系统及设备,能够在Bootloader启动阶段即对LCD进行初始化,并显示一幅图片,相对于现有智能手机启动过程中在内核启动阶段才显示一幅静止图片,使得LCD显示提前。
[0031] 本发明实施例提供的第二种终端启动过程中控制屏幕显示的方法,能够在内核启动过程中初始化显示一幅图片,并利用图形终端功能定期更新显存中的待显示数据,能够使得终端在内核启动过程中屏幕可显示动画。
[0032] 附图说明
[0033] 图1为现有技术中智能手机的启动过程示意图;
[0034] 图2为本发明实施例提供的终端启动时控制屏幕显示的方法流程图; [0035] 图3为本发明实施例提供的第一种将闪存数据写入显存的过程示意图; [0036] 图4为本发明实施例提供的第二种将闪存数据写入显存的过程示意图; [0037] 图5为一幅静止的图片示意图;
[0038] 图6为旋转的‘O’图片示意图;
[0039] 图7为本发明实施例提供的第一种移动终端的结构图;
[0040] 图8为本发明实施例提供的第二种移动终端的结构图。

具体实施方式

[0041] 现有的智能手机启动过程中屏幕的动画演示都是在应用程序启动后才开始的,并且在Bootloader启动过程中屏幕一直是黑屏,并且在内核启动阶段,屏幕只能是LCD初始时的一幅静止图片,导致现有智能手机启动过程中的Bootloader启动阶段屏幕无法显示,同时在内核启动时屏幕显示单一。
[0042] 本发明实施例提供一种终端启动时控制屏幕显示的方法及移动终端,将LCD初始化的操作增加到Bootloader启动阶段,使得在智能手机的Bootloader启动阶段即可在屏幕上显示一幅静止的图片,并在内核启动阶段,打开系统中固有的图形终端功能,使得在内核启动过程中屏幕上能够显示动画,解决了现有技术中智能手机启动过程中的Bootloader启动以及Linux内核启动时屏幕显示单一的问题,并提高了用户感受度。
[0043] 本发明实施例提供一种终端启动时控制屏幕显示的方法,如图2所示,包括: [0044] S201、在运行启动引导程序Bootloader时,初始化LCD;(和附图中的文字不完全一致)
[0045] 其中,终端可以根据所启动的程序所需要的显示质量来初始化LCD,具体 为通过控制LCD驱动器初始化LCD的色调、反转角度等;
[0046] 其中,初始化LCD的操作在Bootloader启动过程中初始化存储器以及时钟之后的任意时刻均可。
[0047] 一般情况下,Bootloader启动可以分为三个阶段:BOOTROM(CPU内部启动引导程序)、OBM(marvell CPU的第一级启动引导程序)、BLOB(marvell CPU的第二级启动引导程序),BOOTROM阶段运行终端中的硬件固化在CPU中的软件,并且,这部分软件是不可修改的;OBM阶段是检测硬件信息,初始化硬件、GPIO初始化配置、设置默认CPU频率、下载nandflash内容;BLOB阶段是初始化硬件中各模块设置等,因此本发明实施例的初始化LCD操作可以在OBM阶段初始化存储器以及时钟之后开始执行;
[0048] 在本发明实施例中,因为在OBM阶段中能够直接控制GPIO(通用输入输出引脚)、存储器、以及CPU内部的寄存器,因此在步骤S201中可以通过GPIO模拟SPI(Serial Peripheral Interface,串行外设接口)总线的时钟信号、CS信号以及数据传输,将LCD初始化;
[0049] S202、从内存中分配显存用于存储待显示数据;
[0050] 较佳的,将内存中(即存储器中)的最高地址部分,分配固定大小的空间作为显存,则显存的地址为固定值、并且不受自动分配空间所限;
[0051] S203、在LCD和显存间建立DMA(直接存储器存取)通道;
[0052] 具体为:将显存地址记录到DMA寄存器中,根据DMA寄存器中的显存地址在LCD和显存间建立DMA通道;
[0053] 其中,DMA通道的作用是将显存中的数据发送到LCD;
[0054] S204、配置LCD控制器的控制参数,其中,LCD控制器根据配置的控制参数控制LCD的显示;
[0055] 其中,参照LCD正常工作时LCD控制器的参数配置LCD控制器的参数,具体为:参照LCD正常工作时LCD控制器的各个寄存器值,直接对LCD控制器的寄存器进行写值; [0056] S205:将待显示数据拷贝到显存中,并通过DMA通道发送到LCD; [0057] 其中,可预先将待显示数据存储到闪存中,则在步骤S205中可将闪存中的待显示数据拷贝到显存中;
[0058] S206:根据预先配置的控制参数控制LCD显示待显示数据。
[0059] 其中,LCD控制器根据预先配置的控制参数控制LCD显示待显示数据。 [0060] 当然,步骤S204可以在步骤S206之前的任何阶段执行,在本发明中并不限定步骤S204的执行时间;
[0061] 通过上述方式,则可以在终端启动的Bootloader启动阶段,即可显示一幅静止图片。
[0062] S207、Bootloader启动完毕,触发内核启动,在运行内核程序时,打开系统中固有的图形终端,利用图形终端定期更新显存中的数据,并通过DMA通道将更新后的数据发送到LCD;
[0063] 步骤S207是CPU控制内核程序完成的;
[0064] S208:根据预先配置的控制参数控制LCD显示更新后的待显示数据。 [0065] 其中,LCD控制器根据之前配置的参数控制LCD显示更新后的数据。 [0066] 上述步骤S201-S205是移动终端的CPU在Bootloader启动阶段控制Bootloader完成的,步骤S207是移动终端的CPU在内核启动阶段控制内核程序完成的,步骤S206、S208是移动终端的LCD控制器完成的。
[0067] 其中,步骤S205中,将闪存中的待显示数据拷贝到显存中,如图3所示,为本发明实施例中第一种将闪存数据写入显存中的过程示意图,通常的实现方案是:当闪存中保存的是PNG图片,将闪存中的PNG图片拷贝到存储器中,再进行解压缩获得二进制格式的图片,将存储器中二进制格式的图片拷贝到显存中,再在LCD屏上显示。
[0068] 如图4所示,为本发明实施例中第二种将闪存数据写入显存中的过程示意图,可预先将需要显示的图片转换成二进制格式的图片并存储在闪存中,则在步骤S205中可直接将闪存中的二进制格式的图片拷贝到显存中,再在LCD屏 上显示。
[0069] 步骤S207、S208即可实现在内核启动过程中实现动画播放。下面详细介绍步骤S207的实现。
[0070] 通过对内核程序启动过程中的代码分析,发现一个通常被关闭的功能:图形终端。在普通的linux系统或windows系统启动过程中,通常会有一个光标在屏幕的左上方一闪一闪。在linux系统或windows中此现象是图形终端的工作标志。图形终端的功能包括定期改变显存内容,在本发明的内核启动过程中,利用图形终端的定期改变显存的功能,将显存中保存的数据内容不断改变,因此,在屏幕的显示过程中即可实现动画的播放。 [0071] 步骤S207中,利用图形终端定期更新显存中的数据具体为:调用图形终端程序以设定的频率读取闪存中的数据,并写入显存中;
[0072] 当然,还可以设置图形终端程序更新显存的区域(即更新区域),例如是整屏的更新还是局部更新,并且更新的内容可以保存在内存中,每次更新时,图形终端程序从内存中读取需要更新的数据,并写入显存中的更新区域;
[0073] 如果需要使显示的动画丰富,则需要整屏的改变显存中的内容,则调用图形终端程序以设定的频率读取闪存中保存的多幅整屏的数据内容,并拷贝到显存中; [0074] 较佳地,为了使得在增加动画显示的过程中不影响内核启动速度,可以对图形终端程序进行设置,使得每次图形终端程序只更改显存中固定区域的数据内容。 [0075] 例如:图5是一幅静止的图片示意图,内核启动中,设置图形终端程序只改变显存中‘O’所在的区域,则可以预先将图片中的‘O’确定坐标,并将‘O’提取出来,进行如图6所示的旋转,将旋转后的‘O’图片数据保存到闪存中,则当打开图形终端程序时,图形终端程序会以设定的频率读取内存中的图像内容,并局部刷新显存中的图形内容,实现动画演示。并且,由于只包含‘O’的图像内容很小,因而在内核启动中占用的闪存空间很小,同时,这 几幅图片的刷新频率不高,因此,在内核启动中,占用的资源较少,不会影响内核的正常启动。
[0076] 上述步骤S201-S208的执行,即可在终端启动过程中,在Bootloader启动阶段,控制屏幕上显示一幅静止图片,并且在内核启动阶段,屏幕上实现动画演示。 [0077] 较佳地,在步骤S207中,内核程序打开图形终端功能之前,还可以包括如下步骤: [0078] 1)在运行内核程序时,将LCD初始化,并从内存中分配显存;
[0079] 较佳地,内核程序分配的显存的地址和Bootloader运行时分配的显存的地址一致,这样可以在内核启动时,屏幕重新显示一幅图片时不会出现闪断的现象; [0080] 2)在LCD和显存间建立DMA通道;
[0081] 具体为:将显存地址记录到DMA寄存器中,根据DMA寄存器中的显存地址在LCD和显存间建立DMA通道;
[0082] 3)配置LCD控制器的控制参数;
[0083] 在运行内核程序时,内核程序根据LCD正常工作时各个寄存器的参数配置LCD控制器的参数,一般内核程序配置的LCD控制器的各项参数和步骤S204中Bootloader配置的参数相同;
[0084] 4)将闪存中的待显示数据写到显存中,并通过DMA通道发送到LCD; [0085] 5)根据预先配置的控制参数控制LCD显示数据。
[0086] 其中,步骤3)也可以在1)-4)中的任意阶段执行。
[0087] 1)-5)这几步是内核程序重新将LCD初始化并显示一幅图片的过程,则在显示一幅图片之后可以继续执行打开图形终端功能,并更新显存内容,即可在内核启动过程中显示动画。
[0088] 当然,因为在Bootloader启动过程中已经初始化LCD、分配显存以及配置LCD控制器的参数了,在内核启动的过程中也可以不执行1)-5)的步骤。
[0089] 当然,如果在Bootloader启动过程中,没有对LCD初始化,并显示一幅图片,即在本发明的上述实施例中可以不执行步骤S201-S206,则在内核启动过程中则必须执行步骤1)-5),再继续执行步骤S207以及S208。这样同样可以在终端启动时控制屏幕在内核启动过程中实现动画的演示,实现内核启动过程中屏幕的显示多样化。
[0090] 如图7所示,本发明实施例还提供一种移动终端,包括:
[0091] 预启动单元701,用于在运行启动引导程序时初始化液晶显示屏LCD,并从内存中分配显存;
[0092] 通道建立单元702,用于在LCD和显存间建立DMA通道;
[0093] 发送单元703,用于将待显示数据拷贝到显存中,并通过DMA通道发送到LCD; [0094] 第一显示单元704,用于根据预先配置的控制参数控制LCD显示待显示数据。 [0095] 较佳地,上述移动终端还包括:
[0096] 更新单元705,用于触发内核程序启动,并在运行内核程序时,打开系统中的图形终端,利用图形终端定时更新显存中的待显示数据,并通过DMA通道发送到LCD;以及 [0097] 第二显示单元706,还用于根据预先配置的控制参数控制LCD显示更新后的待显示数据。
[0098] 如图8所示,本发明实施例还提供一种移动终端,包括:
[0099] 内核启动单元801,用于触发内核程序启动,在运行内核程序时初始化LCD,并从内存中分配显存,在LCD和显存间建立DMA通道,将待显示数据拷贝到显存中,并通过DMA通道发送到LCD;
[0100] 更新单元802,用于打开系统中的图形终端,利用图形终端定时更新显存中的待显示数据,并通过DMA通道发送到LCD;
[0101] 显示单元803,用于根据预先配置的控制参数控制LCD显示待显示数据以 及更新后的待显示数据。
[0102] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0103] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0104] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0105] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0106] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0107] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。