欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于uboot的啟動界面實現(xiàn)方法與流程

文檔序號:11864449閱讀:2002來源:國知局

本發(fā)明涉及計算機系統(tǒng)技術,尤其涉及一種基于uboot的啟動界面實現(xiàn)方法。



背景技術:

uboot全稱為Universal Boot Loader,即通用Bootloader,是一種普遍用于嵌入式系統(tǒng)中的Bootloader,是運行于操作系統(tǒng)之前執(zhí)行的一小段程序,通過它,我們可以初始化硬件設備、建立內存空間的映射表,從而建立適當?shù)能浻布h(huán)境,為最終調用操作系統(tǒng)內核做好準備。所以操縱系統(tǒng)之后才是用戶可見的操作界面,而現(xiàn)在獲取的uboot在系統(tǒng)啟動之前無法通過LCD 顯示啟動界面圖形,給用戶帶來不便。

uboot對其固件大小有限制,友好用戶界面需要復雜的圖像及字符顯示,僅通過圖片二維數(shù)組轉換存儲等基本方式,遠不能滿足需求。對于現(xiàn)有漢字字庫也占據(jù)很大內存,現(xiàn)有常用字庫約兩萬兩千多漢字接近280kb左右,不能滿足固件大小的限制。



技術實現(xiàn)要素:

為了解決以上技術問題,本發(fā)明提出了一種基于uboot的啟動界面實現(xiàn)方法,目的是增加uboot下LCD顯示啟動界面,同時克服uboot大小對復雜啟動界面實現(xiàn)的限制。

本發(fā)明增加LCD驅動實現(xiàn)uboot下的LCD顯示,增加圖片顯示,以及基于frambuffer方式的寫元素畫圖方式,根據(jù)界面內容建立小容量字庫。

本發(fā)明解決上述技術問題所采取的技術方案是:

一種基于uboot的啟動界面實現(xiàn)方法,通過用界面圖片轉換為數(shù)組加載和基于FrameBuffer直接畫元素方法實現(xiàn)用戶界面圖形設計,以及通過設計小字庫克服內存限制的同時方便實現(xiàn)字形輸入。

主要包括:實現(xiàn)uboot下的LCD顯示,增加圖片顯示,以及基于frambuffer方式的寫元素畫圖方式,根據(jù)界面內容建立小容量字庫。

所述實現(xiàn)uboot下的LCD顯示,是通過增加LCD驅動,在uboot源碼中的common和include文件中增加對應于現(xiàn)在使用LCD的驅動源文件及配置頭文件。

所述增加圖片顯示,即圖片以相應位圖模式轉換為二維數(shù)組形式,保存在c文件中。如本設計#define LCDBPP 16 /* Bit Per Pixel */

#define CLOCKS_PPIX 2 /* Clocks per pixel */

#define CPLD_DELAY 3 /* RGB565 pipeline delay */

定義每像素16位,BGR 565顏色模式顯示,通常BGR 565顏色是BGR三基色分別取高5位、6位、5位的方式轉換獲取,但也會因顏色讀取函數(shù)設計不同改變,下邊寫元素畫圖方法會用到。

#define LQ035_DRIVER_OUTPUT_MASK (LQ035_LR | LQ035_TB | LQ035_BGR | LQ035_REV) 定義 從右到左讀取,11位BGR,是否逆轉等。

所以圖片二維數(shù)組存儲如下

INFO logo[]={

{0x94568 , 0xa4},

{0x945da , 0xc5},

…………};

數(shù)組0列表示偏移量,1列表示圖片顏色value。

所述基于FrameBuffer方式的寫元素畫圖方式,先通過open(fbdev,O_RDWR)函數(shù)查看是否支持FrameBuffer機制,如果打開成功既可以使用,則根據(jù)每像素16bit、像素坐標、偏移量以及BGR565顏色模式設計寫像素函數(shù),通過像素寫出想要圖形并填充相應顏色。

所述根據(jù)界面內容建立小容量字庫,主要是指漢字庫,因英文字庫和符號可使用通用英文字符庫。根據(jù)界面所使用文字和全角符號,合并重復字符,通過字符取模工具取出所有字符的點陣字符的數(shù)組,以漢字內碼和字符點陣內容組成相應數(shù)組存儲,建立相應的點陣字庫。直接通過內碼索引讀取相應點陣。

本發(fā)明一種基于uboot的啟動界面實現(xiàn)方法,具有的有益效果有:

通過增加LCD驅動可實現(xiàn)系統(tǒng)啟動之前LCD顯示用戶啟動界面,增加圖片顯示可設計固定logo等,以及基于frambuffer方式的寫元素畫圖方式,根據(jù)界面內容建立小容量字庫,克服uboot固件大小限制的同時,設計復雜的用戶界面。

附圖說明

圖1是本發(fā)明的實現(xiàn)步驟示意圖。

具體實施方式

下面結合附圖和具體實施例對本發(fā)明作進一步說明。

一種基于uboot的啟動界面實現(xiàn)方法:

1)通過在uboot源碼中的common和include文件中增加對應于現(xiàn)在使用LCD的驅動源文件及頭文件,實現(xiàn)系統(tǒng)啟動前LCD顯示。

2)將圖片以相應位圖模式轉換為二維數(shù)組形式,保存在c文件中。

圖片二維數(shù)組存儲如下

INFO logo[]={

{0x94568 , 0xa4},

{0x945da , 0xc5},

…………};

數(shù)組0列表示偏移量,1列表示圖片顏色value。

3)基于FrameBuffer方式的寫元素畫圖方式,先通過open(fbdev,O_RDWR)函數(shù)打開成功說明支持FrameBuffer機制,則根據(jù)每像素16bit、像素坐標、偏移量以及BGR565顏色模式設計寫像素函數(shù),通過像素寫出想要圖形并填充相應顏色。

4)界面所需不重復漢字150,建立小容量漢字字庫,合并重復字符,通過字符取模工具取出所有字符的點陣字符數(shù)組,以漢字內碼和字符點陣內容組成相應數(shù)組存儲,建立相應的點陣字庫。直接通過內碼索引讀取相應點陣。漢字庫如:struct HZ_GB16 hzcode16[]={

//hz41//面

{{"面"},{0x0000, 0xfffe, 0x0200, 0x0200, 0x0400, 0x3ff8, 0x2448, 0x2448,

0x27c8, 0x2448, 0x2448, 0x27c8, 0x2448, 0x2448, 0x3ff8, 0x2008}},

…………};

通過函數(shù) if(((((char)*pch)& 0xff)== (hzcode16[i].HIndex[0]& 0xff))&&((((char)*(pch+1))& 0xff)==(hzcode16[i].HIndex[1]& 0xff)))

做字符內碼索引比較,將字符點陣數(shù)組按位讀入。

5)最后編譯成uboot.bin文件,通過燒錄器燒錄到flash,可上電啟動。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黄山市| 沈丘县| 奇台县| 焦作市| 乐昌市| 剑河县| 麦盖提县| 轮台县| 舟山市| 绥棱县| 拉萨市| 荥经县| 镇平县| 巨野县| 特克斯县| 独山县| 连平县| 娄底市| 泰和县| 资溪县| 乌鲁木齐县| 青浦区| 定日县| 安塞县| 县级市| 旌德县| 鹤庆县| 四会市| 泾阳县| 岚皋县| 昭觉县| 新巴尔虎左旗| 玉环县| 阿巴嘎旗| 盱眙县| 田东县| 永丰县| 开封县| 彩票| 石河子市| 巴中市|