• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 11
    • 下载费用:30 金币  

    重庆时时彩五星定胆位: 一种基于UBOOT实现用户界面图形显示的方法.pdf

    关 键 词:
    一种 基于 UBOOT 实现 用户界面 图形 显示 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410069024.2

    申请日:

    2014.02.27

    公开号:

    CN103793233A

    公开日:

    2014.05.14

    当前法律状态:

    终止

    有效性:

    无权

    法律详情: 未缴年费专利权终止IPC(主分类):G06F 9/44申请日:20140227授权公告日:20161123终止日期:20170227|||授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20140227|||公开
    IPC分类号: G06F9/44 主分类号: G06F9/44
    申请人: 中南大学
    发明人: 熊永华; 郭述帆; 吴敏; 张尧学
    地址: 410083 湖南省长沙市岳麓区麓山南路932号
    优先权:
    专利代理机构: 长沙市融智专利事务所 43114 代理人: 黄美成
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410069024.2

    授权公告号:

    |||||||||

    法律状态公告日:

    2018.03.16|||2016.11.23|||2014.06.11|||2014.05.14

    法律状态类型:

    专利权的终止|||授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于uboot实现用户界面图形显示的方法,通过在uboot中添加LCD驱动,将用户图形界面图片与uboot源码中系统默认图片替换,并且突破uboot文件不能超过240KB的限制,来达到在uboot下通过LCD显示图形用户界面的效果,本方法为uboot提供了良好的用户交互界面,让仅仅能够引导加载程序的uboot程序能够提供图形用户界面,扩展了uboot的适用范围,具有显著的效果和很强的实用性。

    权利要求书

    权利要求书
    1.  一种基于uboot实现用户界面图形显示的方法,其特征在于,包括以下几个步骤:
    步骤1:扩大uboot启动大小限制参数;
    步骤2:在uboot源码中添加LCD驱动代码和头文件;
    步骤3:将需要显示的用户界面图形图片转化为LCD可读取的图片,并以数组存储形式存储,设定图片数组名称为imagedata[];并将图片数组imagedata[]替换/include/linux_logo.h中uboot自带的Linux系统图片数组unsigned char linux_logo[];
    步骤4:编译uboot可烧写文件,并将可烧写文件烧写至开发板上,开发板上电启动uboot,实现图像用户界面的显示;
    步骤2中所述的添加LCD驱动代码和文件包括以下几个部分:
    1)在待显示的图片配置头文件中指定显示图片位于LCD中的位置、大小以及支持显示图片的类型,同时将串口显示更改为LCD显示;
    2)建立处理器平台帧缓冲设备寄存器的定义头文件,从Linux内核源码中直接获得;
    3)如果LCD的分辨率不属于uboot源码定义了的成员,则需要注册新的分辨率成员,否则,进入下一个步骤4);
    注册新的分辨率成员:在图形显示??榍亩ㄒ逦募river/video/videomodes.c中添加新分辨率的Vesa模式结构体ctfb_vesa_modes与解析结构体ctfb_res_modes成员,同时在负责显示??榈膙ideomodes.h文件中将显示模式修改为对应分辨率显示模式,修改显示模式计数(VESA_MODES_COUNT)为所有的显示模式总数、修改解析模式计数(RES_MODES_COUNT)与存在的分辨率成员数一致、增加新的分辨率的成员宏定义;
    4)在处理器头文件中增加ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义,ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义值与2011.06版本的uboot源码中对应变量的定义值保持一致;
    5)将LCD驱动实现文件存储于路径driver/下,LCD驱动实现文件完成驱动LCD显示图片。

    2.  根据权利要求1所述的基于uboot实现用户界面图形显示的方法,其特征在于,所述步骤1中uboot启动大小限制参数扩大为1MB以上。

    3.  根据权利要求2所述的基于uboot实现用户界面图形显示的方法,其特征在于,在所述步骤3中对彩色帧缓冲驱动控制台文件中图片的分辨率参数进行修改,使得图片的分辨率参数LINUX_LOGO_WIDTH、LINUX_LOGO_HEIGHT与存储器中存储的图片分辨率一致,并且图片分辨率不能够大于LCD分辨率。

    说明书

    说明书一种基于uboot实现用户界面图形显示的方法
    技术领域
    本发明属于计算机系统技术领域,涉及一种基于uboot实现用户界面图形显示的方法。 
    背景技术
    uboot为bootloader引导加载程序的一种,是系统启动前最开始执行的程序,作用为初始化设备硬件,引导加载系统程序。在操作系统启动之后,LCD(Liquid Crystal Display,液晶显示器)才能够显示图形图像,现有uboot无法通过LCD显示与用户交互性能良好的图形界面,限制了uboot的使用范围。 
    Uboot作为操作系统启动的引导程序,并未编写如LCD驱动代码,也就无法通过LCD显示图形化的用户界面,然而很多应用场合需要在系统启动前完成与用户的交互,如操作系统的选择性启动,实时性系统的实时监控与操作等都需要在操作系统启动前完成用户交互。 
    发明内容
    本发明提供了一种基于uboot实现用户界面图形显示的方法,其目的在于,解决现有技术中在操作系统未启动时,无法为用户提供LCD方式下uboot图形化的操作界面。 
    一种基于uboot实现用户界面图形显示的方法,其特征在于,包括以下几个步骤: 
    步骤1:扩大uboot启动大小限制参数; 
    uboot启动大小限制参数是指启动uboot所需的可烧写文件大小参数; 
    步骤2:在uboot源码中添加LCD驱动代码和头文件; 
    步骤3:将需要显示的用户界面图形图片转化为LCD可读取的图片,并以数组存储形式存储,设定图片数组名称为imagedata[];并将图片数组imagedata[]替换/include/linux_logo.h中uboot自带的Linux系统图片数组unsigned char linux_logo[]; 
    步骤4:编译uboot可烧写文件,并将可烧写文件烧写至开发板上,开发板上电启动uboot,实现图像用户界面的显示; 
    步骤2中所述的添加LCD驱动代码和文件包括以下几个部分: 
    1)在待显示的图片配置头文件中指定显示图片位于LCD中的位置、大小以及支持显示图片的类型,同时将串口显示更改为LCD显示; 
    2)建立处理器平台帧缓冲设备寄存器的定义头文件,从Linux内核源码中直接获得; 
    3)如果LCD的分辨率不属于uboot源码定义了的成员,则需要注册新的分辨率成员,否则,进入下一个步骤4); 
    注册新的分辨率成员:在图形显示??榍亩ㄒ逦募river/video/videomodes.c中添加 新分辨率的Vesa模式结构体ctfb_vesa_modes与解析结构体ctfb_res_modes成员,同时在负责显示??榈膙ideomodes.h文件中将显示模式修改为对应分辨率显示模式,修改显示模式计数(VESA_MODES_COUNT)为所有的显示模式总数、修改解析模式计数(RES_MODES_COUNT)与存在的分辨率成员数一致、增加新的分辨率的成员宏定义; 
    4)在处理器头文件中增加ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义,ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义值与2011.06版本的uboot源码中对应变量的定义值保持一致; 
    5)将LCD驱动实现文件存储于路径driver/下,LCD驱动实现文件完成驱动LCD显示图片。 
    LCD驱动实现文件可以从现有技术中获得,如s3c6410_fb.c; 
    所述步骤1中uboot启动大小限制参数扩大为1MB以上。 
    在所述步骤3中对彩色帧缓冲驱动控制台文件中图片的分辨率参数进行修改,使得图片的分辨率参数LINUX_LOGO_WIDTH、LINUX_LOGO_HEIGHT与存储器中存储的图片分辨率一致,并且图片分辨率不能够大于LCD分辨率。 
    有益效果 
    本发明提供了一种在uboot中实现图形用户界面的方法,通过使用添加了LCD驱动和用户图形界面图片的uboot源码,成功实现了在操作系统之前启动的uboot程序中显示图形用户界面的效果,从而解决了uboot中无法显示图形用户界面的难题,通过本方法,对于用户而言,可以在系统启动之前完成图形化的操作,达到良好的用户体验;对于uboot而言,传统的uboot仅仅用作操作系统的前端引导程序,无法与用户交互,通过本发明方法用户也能够使用操作系统中熟悉的图形界面来与uboot程序交互,将uboot从幕后转向台前,丰富了uboot的功能,扩展了uboot的应用范围,具有较强的实用性与创新性。 
    附图说明
    图1为本发明所述方法的流程图; 
    图2为应用本发明得到的实例效果图。 
    具体实施方式
    下面将结合附图和实施例对本发明作进一步的说明。 
    一种基于uboot实现用户界面图形显示的方法,其特征在于,包括以下几个步骤: 
    步骤1:扩大uboot启动大小限制参数; 
    uboot启动大小限制参数是指启动uboot所需的可烧写文件大小参数; 
    步骤2:在uboot源码中添加LCD驱动代码和头文件; 
    步骤3:将需要显示的用户界面图形图片转化为LCD可读取的图片,并以数组存储形式存储,设定图片数组名称为imagedata[];并将图片数组imagedata[]替换/include/linux_logo.h中uboot自带的Linux系统图片数组unsigned char linux_logo[]; 
    步骤4:编译uboot可烧写文件,并将可烧写文件烧写至开发板上,开发板上电启动uboot,实现图像用户界面的显示; 
    步骤2中所述的添加LCD驱动代码和文件包括以下几个部分: 
    1)在待显示的图片配置头文件中指定显示图片位于LCD中的位置、大小以及支持显示图片的类型,同时将串口显示更改为LCD显示; 
    2)建立处理器平台帧缓冲设备寄存器的定义头文件,从Linux内核源码中直接获得; 
    3)如果LCD的分辨率不属于uboot源码定义了的成员,则需要注册新的分辨率成员,否则,进入下一个步骤4); 
    注册新的分辨率成员:在图形显示??榍亩ㄒ逦募river/video/videomodes.c中添加新分辨率的Vesa模式结构体ctfb_vesa_modes与解析结构体ctfb_res_modes成员,同时在负责显示??榈膙ideomodes.h文件中将显示模式修改为对应分辨率显示模式,修改显示模式计数(VESA_MODES_COUNT)为所有的显示模式总数、修改解析模式计数(RES_MODES_COUNT)与存在的分辨率成员数一致、增加新的分辨率的成员宏定义; 
    4)在处理器头文件中增加ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义,ELFIN_FB_BASE基址、LCD片选及LCD_SEL掩码的定义值与2011.06版本的uboot源码中对应变量的定义值保持一致; 
    5)将LCD驱动实现文件存储于路径driver/下,LCD驱动实现文件完成驱动LCD显示图片。 
    LCD驱动实现文件可以从现有技术中获得,如s3c6410_fb.c; 
    所述步骤1中uboot启动大小限制参数扩大为1MB以上。 
    在所述步骤3中对彩色帧缓冲驱动控制台文件中图片的分辨率参数进行修改,使得图片的分辨率参数LINUX_LOGO_WIDTH、LINUX_LOGO_HEIGHT与存储器中存储的图片分辨率一致,并且图片分辨率不能够大于LCD分辨率。 
    本实例硬件采用飞凌公司的OK6410开发板,此开发板采用Samsung S3C6410处理器,ARM1176JZF-S内核,主频533MHz/667MHz,256M字节DDR内存,2G Byte Nand Flash。 
    LCD采用OK6410配套的7寸群创FIT-LCD7.0TFT液晶屏,800×480分辨率,系统结构示意图如图1所示。 
    实施例1 
    本实例通过对飞凌公司提供的uboot1.1.6源码进行移植与修改,并将编译后的uboot代码烧写入OK6410-B开发板中,uboot启动后驱动7寸群创LCD,LCD显示用户图形界面,等待用户选择执行程序。 
    具体步骤如图1所示: 
    步骤1:修改uboot启动大小限制,在uboot源码中修改参数,使得启动的uboot可烧写文件在大于240KB的时候也能够成功启动,此必要条件是设置的参数大小必须大于uboot可烧写文件大??; 
    Uboot启动分为两个阶段:汇编语言阶段与C语言阶段,汇编语言主要负责初始化硬件,C语言主要负责驱动硬件设备,拷贝程序文件至内存中?;惚嘤镅灾葱型瓿珊笸ü葱衎lcopy_uboot_to_ram来将位于nand flash存储器中uboot程序拷贝至内存RAM中执行,拷贝程序的大小在Nand_cp.c中通过参数来控制,uboot默认拷贝240KB大小的文件至内存RAM中执行。 
    具体的,通过修改位于uboot/cpu/s3c64xx目录下Nand_cp.c(此文件实现将程序从存储器中拷贝至内存中)中拷贝程序大小的参数,来改变uboot从存储器中拷贝至内存中程序块的大小,我们将此参数修改为1MB,此大小能够满足要求。 
    步骤2:添加LCD驱动,在uboot中并没有自带LCD驱动程序,通过在uboot源码中添加代码与文件,实现驱动LCD显示; 
    在飞凌提供的uboot源码中,并未提供LCD驱动程序,此部分需要添加与修改源码。 
    具体的,通过在uboot源码中添加代码与文件、修改配置参数来实现LCD驱动: 
    第一步,在uboot源码include/configs/smdk6410.h(与CPU相关的待显示的图片存储配置头文件)中配置显示图片位于LCD中的位置、大小以及支持显示图片的类型、将通过串口显示的信息改为通过LCD显示; 
    具体的, 
    #define CONFIG_VIDEO_LOGO 
    表示图片由屏幕左上角开始显示 
    #define VIDEO_FB_16BPP_WORD_SWAP 
    表示支持BMP格式图片显示 
    "stderr=serial\0" 
    表示串口信息通过LCD显示 
    第二步,在include/asm-arm/arch-s3c64xx中建立处理器平台的新模式帧缓冲设备寄存器(framebuffer register)定义头文件regs-fb.h、regs-fb-v4.h,其中regs-fb.h为S3C64XX系列处理器相关寄存器定义、regs-fb-v4.h代表S3C处理器相关寄存器定义,此两个源文件位于linux-3.0.1内核源码目录linux-3.0.1\arch\arm\plat-samsung\include\plat下,直接拷贝过来即可,建立两个头文件的作用在于将寄存器地址映射为具有语义的变量名,方便程序的编写与阅读; 
    第三步,uboot源码中存在6种分辨率成员,分别是:640×480、800×600、1024×768、960×720、1152×864、1280×1024,并不包含800×480分辨率,添加800×480分辨率结构体成员需要修改driver/video/videomodes.c(图形显示??榍亩ㄒ逦募┖蚫river/video/videomodes.h(与图形显示??榍ㄒ宥杂Φ纳魍肺募?。 
    具体的,需要在videomodes.c文件中,向Vesa模式结构体ctfb_vesa_modes与解析结构体ctfb_res_modes中添加代表800×480分辨率的结构体成员,此步骤的作用在于向uboot注册800×480分辨率成员。 
    其中ctfb_vesa_modes结构体定义为: 

    添加的800×480分辨率的ctfb_vesa_modes结构体成员为: 
    {0x213,RES_MODE_800x480,16}, 
    其中0x213代表vesanr,即Vesa(Video Electronics Standards Association,视频电子标准协会)号; 
    RES_MODE_800x480代表resindex,即解析结构体ctfb_res_modes的索引; 
    16代表bits_per_pixel,即每一像素的bit数。 
    解析结构体ctfb_res_modes结构体定义为: 


    新增的800×480分辨率的解析结构体ctfb_res_modes成员为 
    {800,480,50000,2,2,2,2,41,4,0,FB_VMODE_NONINTERLACED}, 
    其中800,480代表xres,yres,即水平与垂直方向的解析度; 
    50000代表pixclock,即每微秒的像素时钟个数; 
    2,2,2,2依次代表left_margin、right_margin、upper_margin、lower_margin,即从行同步到图像左边沿的像素时钟数、从行同步到图像右边沿的像素时钟数、从场同步到图像上边沿的行数、从场同步到图像下边沿的行数; 
    41代表hsync_len,即行同步时间长度; 
    4代表vsync_len,即场同步时间长度; 
    0代表sync,即同步极性设置; 
    FB_VMODE_NONINTERLACED代表vmode,即使用FB_VMODE_NONINTERLACED的扫描形式。 
    在负责显示??榈膙ideomodes.h文件中修改默认显示模式、显示模式计数、增加800×480分辨率模式的宏定义,代码如下: 
    修改: 
    #define CONFIG_SYS_DEFAULT_VIDEO_MODE0x212 
    表示分辨率800×480的显示模式代号为0x212; 
    #define VESA_MODES_COUNT20 
    表示显示模式计数为20。 
    添加: 
    #define RES_MODE_800x4806 
    定义800×480分辨率成员代号为6; 
    #define RES_MODES_COUNT7 
    将RES_MODES_COUNT由源码默认的6改为7,表示新增一个分辨率成员。 
    第四步,在include/s3c6400.h(与s3c6400处理器硬件相关头文件)和include/s3c64x0.h(与s3c64x0处理器硬件相关头文件)中增加处理器S3C6410对LCD的支持,在include/s3c6400.h中添加如下代码: 
    #define ELFIN_FB_BASE0x77100000 
    #define LCD_SEL0 
    #define LCD_SEL_MASK0x03 
    以上三个添加的宏定义定义了ELFIN_FB_BASE基址、LCD片选、LCD_SEL掩码。 

    上述宏定义与函数拷贝于uboot源码内容,u-boot-2011.06/arch/arm/include/asm/arch-s3c64xx/s3c6400.h 
    此函数作用在于返回ELFIN_FB_BASE的指针。 
    在include/s3c64x0.h中增加对LCD控制器的寄存器结构体定义,此步骤作用在于将LCD控制器的寄存器组织为结构体,方便后续函数对控制寄存器的操作,部分代码如下: 


    此结构体定义可参见参考文献1; 
    第五步,在driver/新建LCD驱动的实现文件s3c6410_fb.c,此文件内包含的内容为LCD驱动的定义函数,实现的功能是驱动LCD显示图像,其中驱动实现文件s3c6410_fb.c可参见参考文献2。 
    步骤3:设置显示的图形用户界面图片分辨率,将需要显示的图形用户界面图片存放至数组,将系统默认图片数组替换至新数组; 
    具体的,步骤3分为以下步骤执行: 
    第一步,在/drivers/cfb_console.c(彩色帧缓冲驱动控制台文件,主要定义彩色图片输出控制)中修改图片分辨率,修改LINUX_LOGO_WIDTH、LINUX_LOGO_HEIGHT与图片分辨率一致; 
    第二步,将图片通过使用类似image2lcd的转化工具转化为LCD能够读取执行的数组imagedata[]; 
    第三步,将/include/linux_logo.h(图标数组头文件,存放linux小企鹅系统图标)中uboot自带的Linux系统图片数组unsigned char linux_logo[]替换为第二步生成的imagedata[]; 
    步骤4:编译生成uboot可烧写文件,烧写至开发板,上电启动uboot; 
    步骤5:执行LCD驱动程序,显示步骤3中的图形用户界面,如图2所示,发系统在uboot中显示图形显示界面,等待用户选择需要启动的操作系统; 
    参考文献 
    参考文献1://www.linuxidc.com/Linux/2012-09/69919p6.htm 
    参考文献2: 
    //github.com/tekkamanninja/u-boot-2010.09-for-MINI6410/commit/96bd9368bb09c56e2a91785c459850af2aed92d1 

    关于本文
    本文标题:一种基于UBOOT实现用户界面图形显示的方法.pdf
    链接地址://www.4mum.com.cn/p-6185402.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 七码准备几期本金稳赚 真人蓝月娱乐棋牌下载 甘肃十一选五任五走势图 幸运一分快三计划软件下载 七星彩连线走势图2元 买江西时时的技巧 澳洲pk10计划在线计划 北京11选五开奖走势图 时时彩稳赚 技巧 星光棋牌游戏大全 足彩二串一稳赚技巧 全民奇迹赚钱技巧集锦 百变王牌玩法规则 黑龙江快乐10分网址 北京pk赛车计划软件手机 大乐透带坐标的走势图