码迷,mamicode.com
首页 > 其他好文 > 详细

tiny4412SDK 1161下的HD700驱动设置

时间:2020-06-30 20:28:36      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:好的   显示屏   显示图片   roo   搜索   tar   型号   inf   系统   

平台:Tiny4412SDK 1161B + HD700

kernel:linux 3.5

手头有一块友善之臂的开发板,需要使用HD700屏来显示图片,但是移植好内核后/dev/fb0设备并不能用,看屏幕显示了三排小企鹅,并且存在色差,怀疑lcd驱动并不配套HD700之个型号,故需要做调整。

解决办法:linux 3.5中内核已经具备了HD700型号显示的驱动,只需在uboot引导内核传参的时候加上“lcd=HD700”就行了,例:bootargs=noinitrd root=/dev/nfs nfsroot=192.168.134.128:/tiny4412_nfs ip=192.168.134.10:192.168.134.128:192.168.134.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 lcd=HD700

过程分析:

1)、既然lcd驱动不对,但是还并不知道当前的lcd驱动具体是驱动什么型号的显示屏,通过查看内核启动信息,发现使用的是S702型号的LCD屏。

技术图片

 

 2)、知道驱动的具体型号之后,查阅了内核源代码,在机器初始化(mach-tiny4412.c->smdk4x12_machine_init()),注册系统各类驱动的平台设备信息位置,找到了lcd驱动的平台设备资源:

技术图片

 

 3)、通过翻阅代码可知,lcd的选型是根据定义好的各类lcd型号的数组来确定的,即要确定数组下标lcd_idx。由下图定义的 结构体数组可见当下标为0时,即是HD700型号资源。

技术图片

 

 技术图片

 

 4)、通过搜索lcd_idx变量,发现该变量只在一个地方被修改,即该函数最终决定lcd_idx的值。接下来查看该函数的具体调用。

技术图片

 

 5)、搜索发现上述函数仅在early_param()这个宏当中调用,该宏的作用是linux内核用来传递内核commandline参数的,即内核启动过程中会解析内核参数"lcd",来调用tiny4412_setup_lcd()函数。该内核参数可以在uboot引导的bootargs参数当中设置。

修改如下:

进入uboot命令行,执行一下命令:

print                  //查看uboot环境各参数值

setenv bootargs “原先参数 lcd=HD700”    //设置引导参数bootargs的值  

saveenv                //保存设置的值

reset                  //重新运行uboot

6)、设置好之后发现lcd之显示一排企鹅,并能正确显示RGB像素信息。

技术图片

 

tiny4412SDK 1161下的HD700驱动设置

标签:好的   显示屏   显示图片   roo   搜索   tar   型号   inf   系统   

原文地址:https://www.cnblogs.com/alex-space/p/13215582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!