一种嵌入式设备开机Logo更新、显示方法及其系统与流程

文档序号:17441449发布日期:2019-04-17 04:49阅读:281来源:国知局
一种嵌入式设备开机Logo更新、显示方法及其系统与流程

本发明涉及嵌入式linux设备技术领域,具体地是涉及一种嵌入式设备开机logo更新、显示方法及其系统。



背景技术:

现在嵌入式linux应用领域非常广泛,主要的应用领域有信息家电、pda、机顶盒、数据网络、atm、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天等领域。对于嵌入式linux设备,一般包含了bootloader,linux内核,文件系统,应用层软件这几个部分。对于有lcd显示屏的嵌入式linux设备,常需要在开机的时候显示产品信息或公司信息的logo图片。对于一些oem厂商,通常会根据客户的要求对产品进行定制,而logo是主要的定制的内容之一。

嵌入式linux设备的logo一般是在内核中加载显示,而logo的内容则是被编译进了内核。传统的更换logo的方法是要将png、bmp或者jpg格式的图片转换成pnm格式图片,再将pnm格式图片转换224色的ppm格式图片。得到ppm格式图片后,再将其放进linux的源码目录进行编译生成新的内核文件,再将新的内核烧录到设备。这个更换logo过程比较复杂,需要开发人员进行操作。

也有嵌入式linux设备在bootloader中显示开机logo,但这种方式方法需要计算机软件进行图片的转换,生成bootloader支持的特定格式文件,然后再通过usb或者网络传输的方式将文件写入设备中,操作起来比较麻烦,并且存在加载logo速度慢的问题。

因此,本发明的发明人亟需构思一种新技术以改善其问题。



技术实现要素:

为解决上述技术问题,本发明提供了一种更为方便的嵌入式设备开机logo更新、显示方法及其系统。

本发明的技术方案是:

一种嵌入式设备开机logo更新方法,包括如下步骤:

s1:进入更新logo界面;

s2:读取usb存储设备中的图片文件,加载图片文件列表并将其显示在更新logo界面上;

s3:用户选择要生成logo的logo图片文件;

s4:提取选中的logo图片文件的信息并生成logo描述文件;

s5:将logo描述文件保存到boot分区。

优选地,所述步骤s4具体包括:

s41:提取logo图片文件的文件信息,该文件信息包括但不限于大小信息及像素数据;

s42:将像素数据进行转换;

s43:根据转换后的像素数据生成调色板数据及每个像素点对应的索引数据;

s44:生成logo描述文件。

一种嵌入式设备开机logo显示方法,包括如下步骤:

st1:bootloader从boot分区加载logo描述文件;

st2:bootloader将logo描述文件写入内存指定地址;

st3:bootloader启动内核;

st4:内核从内存指定地址解析logo描述文件;

st5:内核将解析后的像素数据写入framebuffer;

st6:内核显示logo。

优选地,还包括:

st7:内核初始化结束后释放logo描述文件区域的内存。

优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。

一种嵌入式设备开机logo更新系统,包括:

读写模块,用于提供更新logo界面;读取usb存储设备中的图片文件,加载图片文件列表并将其显示在更新logo界面上;用户选择要生成logo的logo图片文件;

图片转换模块,用于提取选中的logo图片文件的信息并生成logo描述文件;

保存模块,用于将logo描述文件保存到boot分区。

优选地,所述图片转换模块具体包括:

提取单元,用于提取logo图片文件的文件信息,该文件信息包括但不限于大小信息及像素数据;

转换单元,用于将像素数据进行转换;

第一生成单元,用于根据转换后的像素数据生成调色板数据及每个像素点对应的索引数据;

第二生成单元,用于生成logo描述文件。

一种嵌入式设备开机logo显示系统,包括:

加载模块,用于bootloader从boot分区加载logo描述文件;

第一写入模块,用于bootloader将logo描述文件写入内存指定地址;

内核启动模块,用于bootloader启动内核;

解析模块,用于内核从内存指定地址解析logo描述文件;

第二写入模块,用于内核将解析后的像素数据写入framebuffer;

显示模块,用于内核显示logo。

优选地,还包括:

释放模块,用于内核初始化结束后释放logo描述文件区域的内存。

优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。

采用上述技术方案,本发明至少包括如下有益效果:

1.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,可以在嵌入式设备的应用软件中生成logo相关的文件,因此不再需要在计算机软件上生成特定的logo相关文件,同时也不再需要重新编译linux内核。

2.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,只需一个usb存储设备(如u盘)即可对嵌入式linux设备进行logo更新。

3.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,可以在设备上通过图形界面进行操作,用户体验良好,设备销售给终端用户之后,用户可以直接在设备上更换logo,满足个性化需求。

4.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,借助于应用层的强大图形库,本方案可以支持多种格式的图片文件,如jpg,jpeg,png,bmp等常见的图形格式。

5.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,由于所生成的logo描述文件是索引+调色板的形式,文件较小,加载速度较快。

6.本发明所述的嵌入式设备开机logo更新、显示方法及其系统,logo更新只对logo描述文件进行更新操作,不修改其他软件模块,保持了嵌入式软件系统的一致性。

附图说明

图1为本发明所述的嵌入式设备开机logo更新方法的流程图;

图2为通用的嵌入式linux设备的flash分区情况的示意图;

图3为本发明所述的步骤s4的具体流程图;

图4为本发明所述的嵌入式设备开机logo显示方法的流程图;

图5为本发明所述的嵌入式设备开机logo更新系统的结构示意图;

图6为本发明所述的嵌入式设备开机logo显示系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示,为符合本实施例的一种嵌入式设备开机logo更新方法,包括如下步骤:

s1:进入更新logo界面;该界面可以是嵌入式linux设备主程序的一个子窗口或者是一个独立的ui进程。在这个界面中用户可以浏览usb存储设备中保存的图片文件,并选择图片文件。

s2:读取usb存储设备中的图片文件,加载图片文件列表并将其显示在更新logo界面上;

s3:用户选择要生成logo的logo图片文件;用户在图片文件列表中选中要更新的logo图片,然后选择确定。

s4:提取选中的logo图片文件的信息并生成logo描述文件;

s5:将logo描述文件保存到boot分区。应用软件会对boot分区进行加载,分区格式可以是fat32,ext4等文件系统格式。应用软件将logo描述文件写入分区后将卸载boot分区。其中嵌入式linux设备flash分区方式如图2所示。

优选地,如图3所示,所述步骤s4具体包括:

s41:提取logo图片文件的文件信息,该文件信息包括但不限于大小信息及像素数据;应用程序对图片进行解析,解析内容包括图片的大小,颜色格式,提取像素数据等。此处提取的像素数据为rgb888格式数据,如果颜色格式不是rgb888,则应用层会将数据转换为rgb888格式。

s42:将像素数据进行转换;具体地,将像素数据转换成224色的像素数据。此处使用中位切分法(mediancut)算法对像素数据进行颜色量化,量化后所有像素的颜色不会超过224种。

s43:根据转换后的像素数据生成调色板数据及每个像素点对应的索引数据;此处目的则是将像素数据进行压缩。使用调色板后,每个像素点的颜色将会被记录为调用板中的索引,由于最多只有224种颜色,调色板最多只有224种颜色。索引值在0~223范围内,只需要一个字节就可以保存索引。

s44:生成logo描述文件。优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。将解析的文件信息、调色板、像素点的索引值保存在logo描述文件中。所有相关的数据放在一个文件内,使得显示时bootloader加载更加方便。

即本实施例中嵌入式linux设备通过usb接口读取存储设备(如u盘或移动硬盘)保存的图片文件,图片格式可以是jpg,jpeg,png和bmp这几种常见的图片格式。通过嵌入式linux应用层软件对图片进行解析,提取图片的原始像素数据及图像信息数据,将原始像素数据进行量化生成224色的像素数据。应用层软件对生成的224色像素数据进行转换,生成颜色索引数据及调色板数据。应用层软件再将图像信息数据、索引数据及调色板数据写入一个logo描述文件中,并将这个文件保存到设备的boot分区。

实施例2

如图4所示,为基于实施例1的一种嵌入式设备开机logo显示方法,包括如下步骤:

st1:bootloader从boot分区加载logo描述文件;嵌入式设备启动时先会运行bootloader,bootloader主要作用包括设置设备内核参数,加载设备树文件,加载内核文件,最后启动内核。在本实施例中,bootloader会额外地从boot分区中加载logo描述文件。

st2:bootloader将logo描述文件写入内存指定地址;在bootloader启动内核之前,将logo描述文件加载到内存特定地址。在这地址开始及其后的一段内存区域在内核启动时不会对其进行初始化,因此在内存中的logo描述文件是安全的,不会被修改。

st3:bootloader启动内核;启动内核后,系统的控制权将交给linux内核。

st4:内核从内存指定地址解析logo描述文件;内核从该内存地址中解析logo文件,获取图片文件信息,像素索引,调色板的数据指针等。

st5:内核将解析后的像素数据写入framebuffer;内核在特定内存中获取图片数据指针,计算出图片的大小,并根据像素索引及调色板将每个像素点的rgb数据写入到framebuffer中,如果framebuffer的bpp(bitperpixel)值是16或8,则会对rgb数据进行相应的转换。

st6:内核显示logo。内核显示logo的操作包括设置lcd控制器的dma地址,bpp,使能lcd控件器,打开lcd背光等操作,最终logo可以在界面上显示。

优选地,还包括:

st7:内核初始化结束后释放logo描述文件区域的内存;在logo描述文件中的数据解析进入framebuffer后,内核不会再对其进行读取,内核会对其内存区域释放,并进入内核内存管理。

st8:内核启动init进程。到此为止,内核启动完成。

优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。

即本实施例中,嵌入式linux设备中的bootloader(u-boot)在加载内核之前将boot分区的logo描述文件加载到内存的一个特定的受内核保护的地址区间。内核启动后对已加载到内存logo描述文件进行解析,并将解析后的数据写入到framebuffer中以实现logo的显示。

实施例3

如图5所示,为符合本实施例的一种嵌入式设备开机logo更新系统,包括:

读写模块,用于提供更新logo界面;读取usb存储设备中的图片文件,加载图片文件列表并将其显示在更新logo界面上;用户选择要生成logo的logo图片文件;该更新logo界面可以是嵌入式linux设备主程序的一个子窗口或者是一个独立的ui进程。在这个界面中用户可以浏览usb存储设备中保存的图片文件,并选择图片文件。

图片转换模块,用于提取选中的logo图片文件的信息并生成logo描述文件;

保存模块,用于将logo描述文件保存到boot分区。应用软件会对boot分区进行加载,分区格式可以是fat32,ext4等文件系统格式。应用软件将logo描述文件写入分区后将卸载boot分区。其中嵌入式linux设备flash分区分区方式如图2所示。

优选地,所述图片转换模块具体包括:

提取单元,用于提取logo图片文件的文件信息,该文件信息包括但不限于大小信息及像素数据;应用程序对图片进行解析,解析内容包括图片的大小,颜色格式,提取像素数据等。此处提取的像素数据为rgb888格式数据,如果颜色格式不是rgb888,则应用层会将数据转换为rgb888格式。

转换单元,用于将像素数据进行转换;具体地,将像素数据转换成224色的像素数据。此处使用中位切分法(mediancut)算法对像素数据进行颜色量化,量化后所有像素的颜色不会超过224种。

第一生成单元,用于根据转换后的像素数据生成调色板数据及每个像素点对应的索引数据;此处目的则是将像素数据进行压缩。使用调色板后,每个像素点的颜色将会被记录为调用板中的索引,由于最多只有224种颜色,调色板最多只有224种颜色。索引值在0~223范围内,只需要一个字节就可以保存索引。

第二生成单元,用于生成logo描述文件。优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。将解析的文件信息、调色板、像素点的索引值保存在logo描述文件中。所有相关的数据放在一个文件内,使得显示时bootloader加载更加方便。

即本实施例中嵌入式linux设备通过usb接口读取存储设备(如u盘或移动硬盘)保存的图片文件,图片格式可以是jpg,jpeg,png和bmp这几种常见的图片格式。通过嵌入式linux应用层软件对图片进行解析,提取图片的原始像素数据及图像信息数据,将原始像素数据进行量化生成224色的像素数据。应用层软件对生成的224色像素数据进行转换,生成颜色索引数据及调色板数据。应用层软件再将图像信息数据、索引数据及调色板数据写入一个logo描述文件中,并将这个文件保存到设备的boot分区。

实施例4

如图6所示,为基于实施例3的一种嵌入式设备开机logo显示系统,包括:

加载模块,用于bootloader从boot分区加载logo描述文件;嵌入式设备启动时先会运行bootloader,bootloader主要作用包括设置设备内核参数,加载设备树文件,加载内核文件,最后启动内核。在本实施例中,bootloader会额外地从boot分区中加载logo描述文件。

第一写入模块,用于bootloader将logo描述文件写入内存指定地址;在bootloader启动内核之前,将logo描述文件加载到内存特定地址。在这地址开始及其后的一段内存区域在内核启动时不会对其进行初始化,因此在内存中的logo描述文件是安全的,不会被修改。

内核启动模块,用于bootloader启动内核;启动内核后,系统的控制权将交给linux内核。

解析模块,用于内核从内存指定地址解析logo描述文件;内核从该内存地址中解析logo文件,获取图片文件信息,像素索引,调色板的数据指针等。

第二写入模块,用于内核将解析后的像素数据写入framebuffer;内核在特定内存中获取图片数据指针,计算出图片的大小,并根据像素索引及调色板将每个像素点的rgb数据写入到framebuffer中,如果framebuffer的bpp(bitperpixel)值是16或8,则会对rgb数据进行相应的转换。

显示模块,用于内核显示logo。内核显示logo的操作包括设置lcd控制器的dma地址,bpp,使能lcd控件器,打开lcd背光等操作,最终logo可以在界面上显示。

优选地,还包括:

释放模块,用于内核初始化结束后释放logo描述文件区域的内存;在logo描述文件中的数据解析进入framebuffer后,内核不会再对其进行读取,内核会对其内存区域释放,并进入内核内存管理。

init进程启动模块,用于内核启动init进程。到此为止,内核启动完成。

优选地,所述logo描述文件包括但不限于文件信息、索引数据、调色板数据。

即本实施例中,嵌入式linux设备中的bootloader(u-boot)在加载内核之前将boot分区的logo描述文件加载到内存的一个特定的受内核保护的地址区间。内核启动后对已加载到内存logo描述文件进行解析,并将解析后的数据写入到framebuffer中以实现logo的显示。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1