《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > UBoot開機圖片顯示

UBoot開機圖片顯示

2017-08-03
關鍵詞: Uboot

  1). 簡介

  在之前的文章中,我們已經介紹了如何在 Linux中添加開機圖片,實現定制化的開機 Logo 顯示。或許你也已經注意到了,在設備剛上電啟動的時候,LCD顯示屏出現下面幾種現象,花屏、黑屏或者顯示內容不全等。這是因為,在基于 Linux 的設備上電啟動時,其實經歷了Bootloader → U-Boot→ Linux→ Root FS→ User App 這一系列的過程。LCD 如果需要正常顯示,其對應的顯示控制器必須得到正確的配置。Linux 啟動會加載顯示驅動,配置正確的顯示參數。而在 Linux 啟動前,一般需要花費1到2秒的時間運行 U-Boot,Toradex 默認的  U-Boot 在啟動后會等待1秒中再加載 Linux 內核,以便用戶進入 U-Boot 的命令行模式。在這一段時間內,ARM 的顯示控制器可能沒有正確配置,所以出現了上述現象。下面我們將以 Toradex ARM計算機模塊Colibri iMX6/iMX7 為例介紹如何在  U-Boot 中配置 RGB LCD 液晶顯示屏,使其上電后即可顯示Logo 圖片。

  在 Linux 中,Device Tree 能夠為顯示驅動提供正確的顯示參數。如 Colibri iMX7 計算機模塊的其中一個  Device Tree 配置文件 imx7-colibri-eval-v3.dtsi , lcdif 節點中native-mode 指定了顯示分辨率、時鐘、時鐘極性等參數。目前最新的 Linux BSP 也支持從 cmdline的 vidargs 設置顯示參數。而U-Boot 雖然也支持 Device Tree,但是目前的版本中還沒有啟用,更多的是需要通過修改源代碼以及U-Boot環境參數來配置顯示輸出。下面針對 Colibri iMX6/iMX7兩個平臺進行說明。

  2). Colibri iMX6

  修改 colibri_imx6.c文件,在 struct display_info_t const displays[]  中添加屏幕參數對應的成員,其中mode.name 不能重復,U-Boot會根據該參數選擇對應的參數配置。

  ---------------------------------------

  {

  .bus= -1,

  .addr= 0,

  .pixfmt= IPU_PIX_FMT_RGB666,

  .enable= enable_rgb,

  .mode= {

  .name           = "wvga-rgb",

  .refresh        = 60,

  .xres           = 800,

  .yres           = 480,

  .pixclock       = 25000,

  .left_margin    = 40,

  .right_margin   = 88,

  .upper_margin   = 33,

  .lower_margin   = 10,

  .hsync_len      = 128,

  .vsync_len      = 2,

  .sync           = 0,

  .vmode          = FB_VMODE_NONINTERLACED

  }

  ---------------------------------------

  你完全可以參考代碼中現有的配置,根據實際使用屏幕的參數做調整。

  然后設置背光和亮度控制,屏幕亮度根據 PWM 的占空比調節,根據屏幕手冊,將RGB_BACKLIGHTPWM_GP 調整為0或者1。U-Boot是一個相對精簡的系統,為了減少啟動時間,許多不必要的外設并沒有被初始化,例如 PWM,在U-Boot一般簡單地把PWM輸出高、低電平。

  ---------------------------------------

  gpio_direction_output(RGB_BACKLIGHT_GP, 1);

  gpio_direction_output(RGB_BACKLIGHTPWM_GP, 0);

  ---------------------------------------

  完成上述修改后,重新編譯 U-Boot,并用其更新 Colibri iMX6 模塊上的U-Boot文件。重啟后在U-Boot配置下面參數

  ---------------------------------------

  setenv panel wvga-rgb

  saveenv

  ---------------------------------------

  wvga-rgb 即之前在struct display_info_t const displays[] 中添加的成員名字,其對應的分辨率是800*480.

  3). Colibri iMX7

  由于 iMX7 SoC 沒有 IPU顯示控制器,因此無法像 iMX6 一樣直接在 U-Boot中配置 panel 參數。 Enhanced LCD Interface (eLCDIF)在iMX7上控制器液晶顯示屏的輸出,因此我們查看lcdif在U-Boot的驅動mxsfb.c。函數video_hw_init(void)實現lcdif 的初始化,這里我們看到可以通過‘videomode’將顯示參數傳給 lcdif驅動。因此,在U-Boot進行如下配置

  ---------------------------------------

  setenv videomode‘video=ctfb:x:800,y:480,depth:18,pclk:29851,le:89,ri:164,up:23,lo:10,hs:10,vs:10,sync:0,vmode:0’

  saveenv

  ---------------------------------------

  同時配置背光亮度 PWM的輸出。在colibri_imx7.c中,將 GPIO_PWM_A設置為0或者1.

  ---------------------------------------

  gpio_direction_output(GPIO_PWM_A, 1);

  ---------------------------------------

  然后重新編譯 U-Boot,并用其更新 Colibri iMX7 模塊上的U-Boot文件。重啟后配置上面videomode參數。

  按照上面的方法,可以實現在U-Boot中配置LCD輸出,并顯示你需要的圖案,你可以參考這篇文章修改U-Boot啟動時的圖片。

  5). 總結

  至此,你已經能夠在設備上電后更早地顯示Logo。但是這個時候可能會遇到更具挑戰的問題,上電后出現很短暫地白屏、花屏或者閃爍。這主要是 LCD液晶屏幕自身上電初始化時所致。這個現象在不同的LCD顯示屏上都會有不同的表現,有些則不會出現。你需要挑選合適的屏幕,或者控制背光延時點亮,例如用外部的電源管理芯片,合理地控制ARM計算機模塊、顯示屏、背光的電壓軌啟動順序,確保在ARM計算機模塊、顯示屏在初始化之前,背光不會被點亮,從而避免屏、花屏或者閃爍的出現。

  U-Boot是和SoC緊密相關的系統,需要根據不同的SoC調整代碼。上面介紹的方法適用于 iMX6/7 SoC模塊,并且使用并口RGB LCD顯示屏。使用其他平臺,如Tegra系列,需要根據其顯示驅動做調整。如果采用 LVDS屏幕,同樣需要在U-Boot開啟對應 LVDS驅動,并設置顯示參數。

  開機圖片顯示,特別是開機立即顯示,這不僅涉及到軟件配置,還和顯示屏、電源管理相關,因此需要從多個方面進行優化,從而達到符合要求的顯示效果。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
夜夜嗨av一区二区三区网站四季av | 亚洲国产合集| 国产美女一区| 国产精品综合色区在线观看| 欧美午夜视频| 国产精品v日韩精品| 欧美天堂亚洲电影院在线播放| 欧美日本在线播放| 欧美激情欧美激情在线五月| 欧美激情 亚洲a∨综合| 欧美国产日韩一区二区三区| 欧美成人一区二区三区在线观看| 美女精品在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 可以看av的网站久久看| 久久夜色精品国产噜噜av| 久久久精品动漫| 久久夜色精品国产| 欧美成人激情在线| 欧美国产第一页| 欧美另类视频| 国产精品v亚洲精品v日韩精品| 国产精品国产三级国产普通话99 | 午夜精品久久久久久久白皮肤| 亚洲女性裸体视频| 午夜视频久久久| 欧美中文字幕在线视频| 久久久久久久久岛国免费| 久久综合999| 欧美肥婆bbw| 欧美日韩精品免费观看视一区二区 | 国产亚洲欧美一区二区三区| 黑丝一区二区三区| 亚洲欧洲日产国码二区| 在线亚洲自拍| 欧美一二三区在线观看| 亚洲黄色尤物视频| 中日韩美女免费视频网址在线观看 | 一个人看的www久久| 亚洲午夜久久久久久尤物| 午夜精品福利在线| 久久久久久久久久久久久久一区 | 久久日韩精品| 欧美精品一区二区视频| 欧美日韩一区国产| 国产三级精品三级| 亚洲高清三级视频| 亚洲午夜精品一区二区| 欧美专区第一页| 一本色道久久综合亚洲精品高清| 午夜精品久久久久影视| 蜜臀av一级做a爰片久久 | 国产精品成人一区二区三区夜夜夜 | 国内精品嫩模av私拍在线观看| 亚洲国产成人91精品| 日韩系列欧美系列| 欧美在线视频免费观看| 99日韩精品| 久久国产主播精品| 欧美精品电影| 国产视频观看一区| 亚洲精品女av网站| 欧美一区二区黄| 99精品国产热久久91蜜凸| 欧美一级理论片| 欧美精品一区二区三区高清aⅴ| 国产精品视频福利| 亚洲国产国产亚洲一二三| 亚洲永久精品大片| 日韩一级网站| 久久久久久国产精品一区| 欧美精品一区二区三区一线天视频| 国产欧美日韩中文字幕在线| 亚洲国产一区二区视频| 亚洲欧美日韩中文视频| 一本色道精品久久一区二区三区 | 美女国产一区| 国产欧美一区二区视频| 日韩亚洲成人av在线| 久久精品国产99国产精品澳门| 亚洲一区二区高清| 欧美高清影院| 伊人色综合久久天天| 亚洲欧美激情四射在线日 | 红桃视频一区| 在线视频日韩精品| 亚洲精品少妇| 久久久久久久久久久久久久一区| 欧美午夜宅男影院| 亚洲欧洲日本国产| 久久精品视频一| 欧美一区二区三区免费视频| 欧美日韩日本国产亚洲在线| **欧美日韩vr在线| 午夜欧美精品| 亚洲免费在线观看| 欧美日韩免费看| 在线观看中文字幕亚洲| 亚洲欧美乱综合| 亚洲一区免费观看| 欧美日韩精品福利| 亚洲欧洲在线一区| 亚洲欧洲日本在线| 久久久午夜电影| 国产一级揄自揄精品视频| 亚洲女同精品视频| 亚洲一区二区在线播放| 欧美理论电影网| 亚洲精品中文字幕在线| 亚洲精品久久久久久下一站| 免费观看成人鲁鲁鲁鲁鲁视频| 国产综合av| 久久精品国产96久久久香蕉 | 久久一本综合频道| 国产亚洲制服色| 欧美一级片在线播放| 久久国产精品久久久久久久久久| 国产精品乱码妇女bbbb| 亚洲色图自拍| 亚洲一区激情| 国产精品男gay被猛男狂揉视频| 一卡二卡3卡四卡高清精品视频| 99精品免费网| 欧美日韩亚洲成人| 一区二区三区成人| 亚洲欧洲99久久| 国产精品久久久久久久久借妻| 在线亚洲精品| 欧美一级成年大片在线观看| 国产酒店精品激情| 欧美在线观看视频| 老司机午夜免费精品视频 | 亚洲精品欧美| 亚洲一区欧美激情| 国产精品一区在线播放| 香蕉久久一区二区不卡无毒影院| 久久精品国产v日韩v亚洲| 国产一区二区三区网站| 亚洲国产成人午夜在线一区 | 欧美精品综合| 99在线热播精品免费99热| 亚洲一区视频| 国产日韩在线不卡| 亚洲国产精品第一区二区三区 | 一本久道久久久| 中文日韩在线| 国产精品人人做人人爽人人添| 午夜一级久久| 蜜臀久久99精品久久久久久9| 亚洲国产毛片完整版| 国产精品99久久久久久久久久久久| 欧美午夜片在线观看| 亚洲欧美中文另类| 久久久久久久久伊人| 亚洲福利在线看| 亚洲一区二区久久| 国产欧美日韩综合| 亚洲清纯自拍| 国产精品分类| 久久精品亚洲一区二区| 欧美激情四色| 亚洲一区二区三区四区中文 | 亚洲人在线视频| 欧美日韩第一区| 午夜精品久久久久久久久久久久久| 老司机午夜精品视频在线观看| 亚洲伦理自拍| 久久成人精品一区二区三区| 尤物yw午夜国产精品视频明星| 一区二区三区日韩欧美| 国产精品五区| 亚洲青涩在线| 国产麻豆成人精品| 亚洲乱码视频| 国产日韩在线一区二区三区| 亚洲免费av片| 国产丝袜一区二区三区| 99热免费精品| 国内精品久久久久久久影视蜜臀| 一本色道久久综合亚洲精品按摩| 国产欧美日韩亚洲精品| 99精品国产热久久91蜜凸| 国产亚洲精品一区二555| 99视频精品| 国产一区二区三区久久| 亚洲午夜高清视频| 韩日视频一区| 亚洲一区3d动漫同人无遮挡| 伊人久久男人天堂| 小黄鸭精品密入口导航| 91久久夜色精品国产九色| 久久本道综合色狠狠五月| 日韩亚洲一区在线播放| 久久综合激情| 亚洲欧美精品在线| 欧美日韩免费| 亚洲激情在线激情| 国产亚洲一区二区三区在线播放| 宅男精品导航| 亚洲激情第一区|