移动终端及其调试信息显示方法

文档序号:9349770阅读:490来源:国知局
移动终端及其调试信息显示方法
【技术领域】
[0001]本发明涉及移动终端领域,尤其是涉及一种移动终端及其调试信息显示方法。
【背景技术】
[0002]第二引导程序(Second Bootloader 1,SBL1)是移动终端系统内核加载前运行的其中一个引导程序,其运行于另外两个引导程序,第一引导程序(Primary Bootloader,PBL)及微型内核(Little Kernel, LK)之间。SBLl主要功能是初始化基本硬件,电源与温度检测、初始化配置参数表(Configurat1n Data Table,(DT),Download,Ramdump,健全各子系统images和加载LK等,其用作十分关键。SBLl是故障频发的环节,但其调试主要依赖于与个人电脑(Personal Computer, PC)间的串口通讯。若脱离串口线与PC的辅助软件,移动终端一旦在SBLl阶段发生故障,从表象根本获取不到任何信息,对SBLl运行状况毫无所知。
[0003]另外,目前移动终端开机时需要按电源键2?3秒后等系统加载LK以后屏幕才能亮起来,用户体验度不够好。

【发明内容】

[0004]本发明主要解决的技术问题是提供一种移动终端及其调试信息显示方法,能够直接在移动终端的LCD上显示SBLl阶段的调试信息,通过文字界面实现用户与移动终端间的交互。
[0005]为解决上述技术问题,本发明采用的一个技术方案是:提供一种显示调试信息方法,包括:在PBL引导程序运行之后,加载并跳转至SBLl引导程序,在SBLl引导程序中,在调试的代码位置调用字符串显示函数接口 ;将需要显示的调试信息通过字库映射成RGB像素信息;将RGB像素信息复制到帧缓冲内存中预设位置,且在SBLl引导程序运行时在移动终端的IXD上显示调试信息。
[0006]其中,在调试的代码位置调用字符串显示函数接口的步骤之前,进行LCD初始化。
[0007]其中,在调试的代码位置调用字符串显示函数接口的步骤之后,判断LCD是否进行了初始化,如果否,则对LCD进行初始化;如果是,则将需要显示的调试信息通过字库映射成RGB像素彳g息。
[0008]其中,在调试的代码位置调用字符串显示函数接口的步骤之前,包括:判断调试信息是否出错,如果是,则在调试的代码位置调用字符串显示函数接口 ;如果否,则继续进行调试。
[0009]其中,调试信息包括SBLl引导程序运行异常信息、映像健全情况、下载状态、系统异常死机信息的至少之一。
[0010]为解决上述技术问题,本发明采用的一个技术方案是:提供一种移动终端,包括调用模块,用于在PBL引导程序运行之后,加载并跳转至SBLl引导程序,在SBLl引导程序中,在调试的代码位置调用字符串显示函数接口 ;映射模块,用于将需要显示的调试信息通过字库映射成RGB像素信息;显示模块,与调用模块以及映射模块连接,用于将RGB像素信息复制到帧缓冲内存中预设位置,且在SBLl引导程序运行时在移动终端的LCD上显示调试信息。
[0011]其中,移动终端还包括初始化模块,用于进行IXD初始化。
[0012]其中,移动终端还包括判断模块,用于判断LCD是否进行了初始化;如果否,则移动终端对LCD进行初始化;如果是,则映射模块将需要显示的调试信息通过字库映射成RGB
像素信息。
[0013]其中,判断模块还用于判断调试信息是否出错,如果是,则调用模块在调试的代码位置调用字符串显示函数接口 ;如果否,则继续进行调试。
[0014]其中,调试信息包括SBLl引导程序运行异常信息、映像健全情况、下载状态、系统异常死机信息的至少之一。
[0015]本发明的有益效果是:区别于现有技术的情况,本发明通过开始SBLl调试,在调试的代码位置调用字符串显示函数接口 ;在LCD进行了初始化后,将需要显示的调试信息通过字库映射成RGB像素信息;将RGB像素信息复制到帧缓冲内存中预设位置,在SBLl调试时在IXD上显示调试信息,能够直接在移动终端的IXD上显示SBLl阶段的调试信息,通过文字界面实现用户与移动终端间的交互。
【附图说明】
[0016]图1是本发明实施例的移动终端的结构示意图;
[0017]图2是本发明实施例的移动终端中与LCD显示有关的硬件的结构示意图;
[0018]图3是本发明实施例的LCD初始化的方法示意图;
[0019]图4是本发明实施例的移动终端的显示调试信息的方法示意图;
[0020]图5是本发明实施例的移动终端的显示调试信息的效果示意图;
[0021]图6是本发明实施例的显示调试信息方法的流程示意图。
【具体实施方式】
[0022]请参阅图1,图1是本发明实施例的移动终端的结构示意图。如图1所示,移动终端10包括调用模块11、映射模块12以及显示模块13。调用模块21用于在PBL引导程序运行之后,加载并跳转至SBLl引导程序,在SBLl引导程序中,在调试的代码位置调用字符串显示函数接口。映射模块12用于将需要显示的调试信息通过字库映射成RGB像素信息。显示模块23与调用模块21以及映射模块22连接,用于将RGB像素信息复制到帧缓冲内存中预设位置,且在SBLl引导程序运行时在移动终端的液晶显示器(Liquid Crystal Display,IXD)上显示调试信息。其中,调试信息包括SBLl引导程序运行异常信息、映像(images)健全情况、下载(download)状态、系统异常死机(Ramdump)信息的至少之一。
[0023]SBLl是运行于PBL和LK之间的一段关键引导程序。SBLl中需要进行许多基本硬件的初始化操作,如电源管理单元(Power Management Unit,PMIC)、通用输入/输出(General Purpose Input Output,GP10)接口、时钟、内存(Double Data Rate,DDR)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART),那么就具备了点亮IXD的理论条件。可是,SBLl不像LK和KERNEL那样直接运行在DDR内存中,而是运行在紧親合内存(Tightly Coupled Memories,TCM)上。TCM紧密地親合至处理器内核,是一个高速的内存区域,提供与cache相当的性能。
[0024]TCM内存十分小,导致SBLl运行代码大小受限,一般不超过512KB。所以在使用C语言编写LCD驱动的时候,需要尽量压缩代码大小,尤其需要控制好堆栈、全局变量、常量等的使用。另外,TCM申请的内存地址无法用于直接存储器(Direct Memory Access, DMA)传输。而LK是运行于DDR,其申请的内存地址能直接用于DMA传输。据上述可知,SBLl已对DDR进行了初始化,虽然不在DDR上运行,却可以对DDR进行控制与使用了。因此,可将IXD驱动代码置于SBLl中基本硬件初始化完成之后、子系统images加载之前,就可使用DDR进行DMA的传输。
[0025]如图2所示,移动终端10中与IXD显示有关的硬件包括:电池(Battery)、电源管理单元(PMIC)、应用处理器(Applicat1n Processer, AP)、图像处理器(GraphicsProcessing Unit,GPU)、DDR、背光控制器(Backlight Controller)以及液晶显不器(LCD),应用处理器内部集成有显示处理模块(Mobile Display Process,MDP)、显示串行接口(Display Serial Interfaces,DSI)控制器、移动产业处理器接口(Mobile IndustryProcessor Interface, MIPI)以及 GP1 接口。其中,MDP 直接内存存取(Direct MemoryAccess,DMA)负责数据传输,MDP像素处理管道(Pixel Processing Pipe,PPP)负责图像基本处理。Battery、PMIC负责各模块的供电;AP通过GP1控制背光开关和IXD的使能与复位等;帧缓冲内存(Frambuffer)是DDR中划分出来用于存储LCD显示数据的缓冲区域;GPU通过内部GMEM内存与Frambuffer进行通讯,可用于处理较复杂的图像效果(SBL1中未使用GPU) ;AP中的MDP PPP将内存中Frambuffer的RGB数据进行简单处理,然后由MDPDMA将Frambuffer数据从DDR内存经DSI传送至IXD中进行显示。DSI,本设计中采用了低功耗、高数据传输率的MIPI接口,包含一路时钟通道和两路数据串行通道,MIPI既可用于命令传输,也可用于图像数据传输。
[0026]在本发明实施例中,移动终端10还包括初始化模块14和判断模块15。在本发明实施例中,调用模块11在调试的代码位置调用字符串显示函数接口之前,判断模块15还用于判断调试信息是否出错。如果是,则调用模块11在调试的代码位置调用字符串显示函数接口 ;如果否,则继续进行调试。在调用模块11在调试的代码位置调用字符串显示函数接口之后,判断模块15判断LCD是否进行了初始化。如果否,则移动终端10对LCD进行初始化,也即初始化模块14对LCD进行初始化。如果是,则映射模块12将需要显示的调试信息通过字库映射成RGB像素信息。当然也可以是在调用模块11在调试的代码位置调用字符串显示函数接口之前,初始化模块14即对LCD进行初始化。如此能够直接在移动终端的LCD上显示SBLl阶段的调试信息,立即反馈移动终端发生故障的种类与原因,以利于研发人员迅速定位与解决问题,通过文字界面实现用户与移动终端间的交互,提高了用户体验度。
[0027]本发明实施例使用C语言进行SBLl-1XD驱动的开发。搭建一个IXD驱动的基本框架,包括IXD面板上电、IXD面板复位(Reset)、时钟(Clock)配置、Frambuffer初始化、MIPI与MDP的初始化、LCD面板的硬件与软件ID的读取、LCD面板与背光的打开等。LCD初始化具体地参见图3,图中虚线显示LCD初始化的顺序,实线表示各硬件模块间的联系,详细步骤如下:
[0028]I) LCD供电:软件控制PMIC芯片,第6引脚PM_LD0_6输出1.8V给LCD的1VCC脚供电,第17引脚PM_LD0_17输出2.85V给IXD的VCC脚供电。
[0029]2)读取LCD面板的硬件型号(ID):将引脚GP10110和引脚GP1095配置为单向读取状态,然后通过GP1读取IXD面板的LCD_ID0引脚与LCD_ID1引脚中固化的值,根据两个引脚的组合来判断LCD面板的型号。
[0030]3) IXD面板复位:将引脚GP1025和引脚GP1097配置为单向输出状态,然后通过引脚GP1097向IXD面板的ENABLE引脚输出恒高电平,通过引脚GP1025向RESET脚输出“高低高”的脉冲信号进行硬件复位;
[0031]4)时钟配置:先初始化MDP与MIPI的时钟控制器,并对已初始化的主时钟进行分频,然后分别配置MDP与MIPI所需要的相关时钟,最后使能MDP与MIPI的时钟引脚。
[0032]5)Frambuffer的初始化:根据屏幕的高度
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1