找回密码
 注册
关于网站域名变更的通知
查看: 574|回复: 3
打印 上一主题 下一主题

iMX6Q Linux应用笔记-LCD移植、LVDS移植、QT桌面旋转

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-13 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 行者~ABC 于 2021-1-13 09:42 编辑 . q9 }, t6 i( x
9 w3 U4 x! A4 B% Y4 D
本文主要适用于飞凌OKMX6DL/Q-C平台Linux3.0.35操作系统,其他imx6Q平台也可以参考,但是不同平台之间会存在差异,需客户自行修改以适应自己的使用。通过本文您可以了解LCD移植、LVDS移植及桌面旋转的参考方法。
0 q' q9 a5 K: t' l7 m- m* I第一章 LCD移植6 f5 q- u& Y. h: A; p; |8 C
以添加800x600分辨率的LCD屏为例:% r8 c  @% W3 ]
步骤一:iMX6Q内核部分的修改:/ J3 [8 \+ ?1 _5 Z4 N
修改linux-3.0.35/drivers/video/mxc/mxc_lcdif.c
- b, Y+ \( B2 j2 C4 x" X根据屏体手册在驱动添加时钟参数:
, T5 r* n$ i4 Q9 a1 b! M: X# estatic struct fb_videomode lcdif_modedb[] = {
+ M. \4 d+ g8 F6 G        {( o& G1 v. p" o; }
        /* 800x480 @ 57 Hz , pixel clk @ 27MHz */+ K8 x/ P+ {: x* _
        "CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,# ?! `. L8 H# B, C
        FB_SYNC_CLK_LAT_FALL,
5 ~5 a( l- w" n! x        FB_VMODE_NONINTERLACED,! O+ K/ ^# B) v. O4 |0 Y# V8 i
        0,},
" I; r1 v! K7 r. h! U      …………………………………………..中间省略N行,可参看实际代码, q0 u, Q! S4 v9 `( G4 W! P; j
        {
+ r' a- U0 l3 l. \, y1 d# t8 X        "AT080-WVGA", 60, 800, 600, 21276, 46, 23, 210, 12, 1, 1,
1 C$ T/ }$ m, X' E) e8 E/ s& C        FB_SYNC_CLK_LAT_FALL,! A% _' F0 r5 h
        FB_VMODE_NONINTERLACED,# o' }/ z5 W  H0 S0 X9 _
        0,},. B+ N, w3 s) H( J" `( P7 t
};
$ D" G9 r0 J0 Y9 x6 ]步骤二:iMX6Q 关于uboot中的修改
8 V4 Z* o- D' Q修改uboot-2009/include/configs/mx6q_sabrESD.h中的显示参数% g# E* ~# ^" ]3 V
#elif defined(CONFIG_UBOOT_KERNEL_LCD)
8 r0 ?8 H! A% G, O( d8 ^# ^   #define MXC_FB0          "mxcfb0=video=mxcfb0:dev=lcd, AT080-WVGA,if=RGB24,bpp=32\0"
# r6 j# t! U) U9 d   #define MXC_FB1          "mxcfb1=video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32\0"
- _5 ~: N" \8 A) m- Q% X# j' R; d   #define FB0BASE          "fb0base=fb0base=0x27b00000\0"
( l* ]8 W) f' b7 C! v) e' ]   #define FBMEM     "fbmem=fbmem=28M\0"6 ~3 @2 f1 S0 }) V, M! b) c
   #define PANEL            "panel= AT080-WVGA \0". q8 h9 _8 P6 R4 z
#endif               3 @4 S. E# ~/ ^' d! @9 E& E5 m
注意:AT080-WVGA是和内核中的配置保持一致的。代码中的具体参数需要客户根据自己的屏幕手册自行计算,不知道参数具体含义的可以百度搜索了解这方面相关的知识。$ ]2 N  f. ?, t) y! h
' K; O3 R/ G- x) D
第二章LVDS移植以飞凌的10.1吋1280x800分辨率的LVDS屏幕为例。9 q5 }: w( M, D+ t9 O  D
步骤一:iMX6Q 内核部分的修改
; N! q; \) A' ]7 W$ q修改linux-3.0.35/drivers/video/mxc/ldb.c
3 g, |% E, a. {) ^) Bstatic struct fb_videomode ldb_modedb[] = {
9 L; L+ W! e0 B9 h' d8 K{/ k; o) e4 F3 {, W1 K" u
"LDB-WXGA", 60, 1280,800, 14064,
3 `4 K3 ?+ u3 B- k, F           70, 80,% A5 K: m& Q! M& u  {
            8, 13,
. [0 A+ i' m: H* w2 F           10, 2,
% z' f0 o' w8 c, s1 _5 i- e& ^* }           0,
$ c$ g( E. s4 R, M) j8 A% G3 bFB_VMODE_NONINTERLACED,5 R: k9 a1 D# m0 y3 Q4 S. n; x
FB_MODE_IS_DETAILED,},! O6 S6 {( i. ~( f" M2 j
{. n: `3 b8 |& N4 [
"LDB-XGA", 60, 1024, 768, 15385,+ O$ K2 D- \# o& r& N
220, 40,+ U+ q+ M/ y* B9 @) \3 e, v
21, 7,3 N) }1 N3 `7 }, ~1 I, H2 s; R9 F$ G
60, 10,) g. ~2 N- E  G( c: I
0,
' A: a8 V& Z8 x" F4 U* h1 lFB_VMODE_NONINTERLACED,
$ o6 @9 e2 [: t" X1 `0 [FB_MODE_IS_DETAILED,},9 Z, N0 B+ o7 D8 @" G( f: }! r
{
1 c# J9 [  o' x' z"LDB-1080P60", 60, 1920, 1080, 7692,# B8 @# A& o/ T6 \5 F' \$ b+ Q
100, 40,
  X' W6 d, U. z8 I30, 3,
. d9 F  e4 }% a( f10, 2,! R7 U  h2 u8 F4 {: ~! a8 F
0,1 G% W& K+ E8 ~( ?
FB_VMODE_NONINTERLACED,5 A5 j1 [4 q$ z5 R2 L; f' j8 p7 Z
FB_MODE_IS_DETAILED,},$ v% K4 ^* y) P8 n7 z7 v) l& c
};
) T1 {" `9 a; a7 D4 g步骤二:iMX6Q Uboot部分的修改
3 f$ ^) ]9 x0 L! E' [+ L修改uboot-2009/include/configs/mx6q_sabresd.h
2 o, `) d* m: y2 d& w# {  `#if defined(CONFIG_UBOOT_KERNEL_LVDS)1 N* [% `$ m: `2 T
   #define MXC_FB0          "mxcfb0=video=mxcfb0:dev=ldb,LDB-WXGA,if=RGB24,bpp=32\0"  N+ W  F; S5 G% I
   #define MXC_FB1          "mxcfb1=video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32\0"
; N9 w+ s- p- H: g+ l   #define FB0BASE          "fb0base=fb0base=0x27b00000\0") \9 T$ ]9 o5 R5 M6 h4 K- O3 h6 l
   #define FBMEM     "fbmem=fbmem=28M\0"
" d3 q) V% u3 f8 _1 ?2 J# y   #define PANEL            "panel=LDB-WXGA\0"9 W8 V4 J! W8 R/ Y& [
  注意:
: Z8 H$ L; g" y/ TLDB-WXGA是和内核中的配置保持一致的。代码中的具体参数需要客户根据自己的屏幕手册自行计算,不知道参数具体含义的可以百度搜索了解这方面相关的知识。8 @; K1 e3 ~) J' Z
% K0 _3 B  \3 A
第三章 QT桌面旋转90度通过以下方法可以将屏幕上的QT旋转90度,180度或者是270度。以旋转90度为例:! N+ U/ P1 [0 B  J. A& ^
修改iMX6Q文件系统中的QT环境变量脚本:: Q& h/ U7 h. `
root@freescale /$ vi  /etc/rc.d/qt_env.sh
; U4 O( B2 l6 ?' q将 export QWS_display="linuxfb:mmWidth50:mmHeight130:0"
) j) R# I: s- p7 [' `$ g. G8 m7 L0 L修改为export QWS_DISPLAY=”Transformed:Rot90inuxFb:/dev/fb0”
- c" A! m* x0 e修改完成后保存该文件并执行sync命令后,重启iMX6Q开发板即可;有些QT界面不能够适应旋转后的宽高等,需要重新编译调整下qt界面的图形界面。也可以修改文件系统源码下的etc/rc.d/qt_env.sh 文件,改动方法同上,然后重新制作文件系统映像并烧写到平台。
& c: {# `7 i* b4 D) J1 m) F) k8 H$ I
/ Y& R9 W5 j: O4 o3 w6 `: q. @1 }2 s: f
( E8 o- L- w2 i3 j
  • TA的每日心情

    1684134877
  • 签到天数: 1 天

    推荐
    发表于 2021-1-13 17:32 | 只看该作者
    Heaven_1 发表于 2021-1-13 13:20
    . P( w0 \. M" w( N( e. E现在QT在ARM里面用的多不多

    * D0 ?  U5 g) V6 B用linux的比较多3 C/ I3 E( z* H) M/ V. m) T$ [

    该用户从未签到

    2#
    发表于 2021-1-13 09:58 | 只看该作者
    请问有合适的开发板嘛,
    0 x% T3 {  \# v; W2 h8 @9 W2 C9 _) ]
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-1-13 13:20 | 只看该作者
    现在QT在ARM里面用的多不多/ Q- ^( \" p0 `, G! \& @8 Z; Y

    点评

    用linux的比较多  详情 回复 发表于 2021-1-13 17:32
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-21 05:37 , Processed in 0.125000 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表