iMX6Q Linux應(yīng)用筆記-LCD移植、LVDS移植、QT桌面旋轉(zhuǎn)

原創(chuàng) 2021-01-06 17:11:00 iMX6Q

本文主要適用于飛凌OKMX6DL/Q-C平臺(tái)Linux3.0.35操作系統(tǒng),其他iMX6Q平臺(tái)也可以參考,但是不同平臺(tái)之間會(huì)存在差異,需客戶自行修改以適應(yīng)自己的使用。通過本文您可以了解LCD移植、LVDS移植及桌面旋轉(zhuǎn)的參考方法。

第一章 LCD移植


以添加800x600分辨率的LCD屏為例:

步驟一:iMX6Q內(nèi)核部分的修改:

修改linux-3.0.35/drivers/video/mxc/mxc_lcdif.c

根據(jù)屏體手冊在驅(qū)動(dòng)添加時(shí)鐘參數(shù):

static struct fb_videomode lcdif_modedb[] = {

        {

        /* 800x480 @ 57 Hz , pixel clk @ 27MHz */

        "CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,

        FB_SYNC_CLK_LAT_FALL,

        FB_VMODE_NONINTERLACED,

        0,},

      …………………………………………..中間省略N行,可參看實(shí)際代碼

        {

        "AT080-WVGA", 60, 800, 600, 21276, 46, 23, 210, 12, 1, 1,

        FB_SYNC_CLK_LAT_FALL,

        FB_VMODE_NONINTERLACED,

        0,},

};

步驟二:iMX6Q 關(guān)于uboot中的修改

修改uboot-2009/include/configs/mx6q_sabresd.h中的顯示參數(shù)

#elif defined(CONFIG_UBOOT_KERNEL_LCD)

   #define MXC_FB0          "mxcfb0=video=mxcfb0:dev=lcd, AT080-WVGA,if=RGB24,bpp=32\0"

   #define MXC_FB1          "mxcfb1=video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32\0"

   #define FB0BASE          "fb0base=fb0base=0x27b00000\0"

   #define FBMEM     "fbmem=fbmem=28M\0"

   #define PANEL            "panel= AT080-WVGA \0"

#endif               

注意:AT080-WVGA是和內(nèi)核中的配置保持一致的。代碼中的具體參數(shù)需要客戶根據(jù)自己的屏幕手冊自行計(jì)算,不知道參數(shù)具體含義的可以百度搜索了解這方面相關(guān)的知識(shí)。


第二章LVDS移植

以飛凌的10.1吋1280x800分辨率的LVDS屏幕為例。

步驟一:iMX6Q 內(nèi)核部分的修改

修改linux-3.0.35/drivers/video/mxc/ldb.c
static struct fb_videomode ldb_modedb[] = {

{

 "LDB-WXGA", 60, 1280,800, 14064,

           70, 80,

            8, 13,

           10, 2,

           0,

 FB_VMODE_NONINTERLACED,

 FB_MODE_IS_DETAILED,},

{

 "LDB-XGA", 60, 1024, 768, 15385,

 220, 40,

 21, 7,

 60, 10,

 0,

 FB_VMODE_NONINTERLACED,

 FB_MODE_IS_DETAILED,},

{

 "LDB-1080P60", 60, 1920, 1080, 7692,

 100, 40,

 30, 3,

 10, 2,

 0,

 FB_VMODE_NONINTERLACED,

 FB_MODE_IS_DETAILED,},

};

步驟二:iMX6Q Uboot部分的修改

修改uboot-2009/include/configs/mx6q_sabresd.h

#if defined(CONFIG_UBOOT_KERNEL_LVDS)

   #define MXC_FB0          "mxcfb0=video=mxcfb0:dev=ldb,LDB-WXGA,if=RGB24,bpp=32\0"

   #define MXC_FB1          "mxcfb1=video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32\0"

   #define FB0BASE          "fb0base=fb0base=0x27b00000\0" 

   #define FBMEM     "fbmem=fbmem=28M\0"

   #define PANEL            "panel=LDB-WXGA\0"

  注意:

LDB-WXGA是和內(nèi)核中的配置保持一致的。代碼中的具體參數(shù)需要客戶根據(jù)自己的屏幕手冊自行計(jì)算,不知道參數(shù)具體含義的可以百度搜索了解這方面相關(guān)的知識(shí)。


第三章 QT桌面旋轉(zhuǎn)90度

通過以下方法可以將屏幕上的QT旋轉(zhuǎn)90度,180度或者是270度。以旋轉(zhuǎn)90度為例:

修改iMX6Q文件系統(tǒng)中的QT環(huán)境變量腳本:

root@freescale /$ vi  /etc/rc.d/qt_env.sh
將 export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"
修改為export QWS_DISPLAY=”Transformed:Rot90:LinuxFb:/dev/fb0”

修改完成后保存該文件并執(zhí)行sync命令后,重啟iMX6Q開發(fā)板即可;有些QT界面不能夠適應(yīng)旋轉(zhuǎn)后的寬高等,需要重新編譯調(diào)整下qt界面的圖形界面。也可以修改文件系統(tǒng)源碼下的etc/rc.d/qt_env.sh 文件,改動(dòng)方法同上,然后重新制作文件系統(tǒng)映像并燒寫到平臺(tái)。




相關(guān)產(chǎn)品 >

  • FETMX6Q-C核心板

    i.MX6Q核心板板層出不窮,要如何選擇?飛凌解讀i.mx6Q芯片強(qiáng)性能為您推薦四核A9架構(gòu)的i.MX6Q產(chǎn)品精選,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工業(yè)級核心板,歡迎采購。  i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架構(gòu)的i.MX6Q四核處理器設(shè)計(jì),核心板小尺寸核心板搭配獨(dú)特的薄款連接器,讓設(shè)計(jì)隨心所欲!

    了解詳情
    FETMX6Q-C核心板
  • FETMX6Q-S核心板

    NXP iMX6Quad系列具有四個(gè)內(nèi)核,運(yùn)行頻率達(dá)1.2 GHz,帶有1 MB L2緩存和64位DDR3或2通道、32位LPDDR2支持。飛凌提供商業(yè)級iMX6Q核心板,工業(yè)級iMX6Q核心板,兼容一同底板。具有抗震,抗氧化,抗干擾,更快速升級產(chǎn)品等優(yōu)勢。保定飛凌嵌入式專注imx6,imx6開發(fā)板,飛思卡爾imx6等ARM嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn),是imx6,imx6開發(fā)板,飛思卡爾imx6提供者,imx6系列產(chǎn)品現(xiàn)已暢銷全國,歡迎咨詢!
    了解詳情
    FETMX6Q-S核心板

推薦閱讀 換一批 換一批