历史上的今天
返回首页

历史上的今天

今天是:2024年12月29日(星期日)

2021年12月29日 | 手把手教你4418/6818开发板屏幕修改

2021-12-29 来源:eefocus

开发平台:iTOP-4418/6818开发板

 

4418&6818屏幕修改分别需要修改uboot和内核,首先是修改uboot。

 

1.首先进入到android源码目录下:

 

 

 

 

 

 

 

 

 

 

 

图1

4418平台,需要修改uboot的文件是:u-boot/board/s5p4418/drone2/board.c,使用vi命令打开这个文件,屏幕的默认参数设置在49行到93行,如下图:

 

图2

4418暂时支持9.7寸,7寸,4.3寸屏幕,他们的设置在该文件,如下图所示的地方:

 

图3

上图中代码的功能,首先是从uboot的环境变量里面读取出当前使用的哪款屏幕,然后根据屏幕类型选择对应分支的设置。比如屏幕的宽,高,刷新率,如果用户使用其它的屏幕,需要在此处修改(需要根据自己屏幕的参数,修改图2中的那些默认变量)(6818的修改文件是:u-boot/board/s5p6818/dronel/board.c,方法同上)

 

2,linux内核部分的修改:

首先是文件kernel/arch/arm/plat-s5p4418/topeet/include/cfg_main.h(6818对应的文件是:kernel/arch/arm/plat-s5p6818/topeet/include/cfg_main.h)

这个文件里定义里一组与屏幕相关的宏,如下所示:

/*------------------------------------------------------------------------------

 *      Display (DPC and MLC)

 */

/* Primary */

#define CFG_DISP_PRI_SCREEN_LAYER               0

#define CFG_DISP_PRI_SCREEN_RGB_FORMAT          MLC_RGBFMT_A8R8G8B8

#define CFG_DISP_PRI_SCREEN_PIXEL_BYTE          4

#define CFG_DISP_PRI_SCREEN_COLOR_KEY           0x090909

 

#define CFG_DISP_PRI_VIDEO_PRIORITY                             2       // 0, 1, 2, 3

#define CFG_DISP_PRI_BACK_GROUND_COLOR          0x000000

 

#define CFG_DISP_PRI_MLC_INTERLACE              CFALSE

 

#define CFG_DISP_PRI_LCD_WIDTH_MM                               154

#define CFG_DISP_PRI_LCD_HEIGHT_MM                              85

 

/* modify by cym 20150811 */

#if 0

#define CFG_DISP_PRI_RESOL_WIDTH                        1024    // X Resolution

#define CFG_DISP_PRI_RESOL_HEIGHT                               600     // Y Resolution

#else

#define CFG_DISP_PRI_RESOL_WIDTH                        800//1024    // X Resolution

#define CFG_DISP_PRI_RESOL_HEIGHT                               1280//768     // Y Resolution

#endif

/* end remove */

 

#define CFG_DISP_PRI_HSYNC_SYNC_WIDTH            20

#define CFG_DISP_PRI_HSYNC_BACK_PORCH           160

#define CFG_DISP_PRI_HSYNC_FRONT_PORCH          160

#define CFG_DISP_PRI_HSYNC_ACTIVE_HIGH          CTRUE

#define CFG_DISP_PRI_VSYNC_SYNC_WIDTH            3

#define CFG_DISP_PRI_VSYNC_BACK_PORCH            23

#define CFG_DISP_PRI_VSYNC_FRONT_PORCH           12

#define CFG_DISP_PRI_VSYNC_ACTIVE_HIGH          CTRUE

 

#define CFG_DISP_PRI_CLKGEN0_SOURCE             DPC_VCLK_SRC_PLL2

#define CFG_DISP_PRI_CLKGEN0_DIV                12 // even divide

#define CFG_DISP_PRI_CLKGEN0_DELAY              0

#define CFG_DISP_PRI_CLKGEN0_INVERT                             0

#define CFG_DISP_PRI_CLKGEN1_SOURCE             DPC_VCLK_SRC_VCLK2

#define CFG_DISP_PRI_CLKGEN1_DIV                1

#define CFG_DISP_PRI_CLKGEN1_DELAY              0

#define CFG_DISP_PRI_CLKGEN1_INVERT                             0

#define CFG_DISP_PRI_CLKSEL1_SELECT                             0

#define CFG_DISP_PRI_PADCLKSEL                  DPC_PADCLKSEL_VCLK      /* VCLK=CLKGEN1, VCLK12=CLKGEN0 */

 

#define CFG_DISP_PRI_PIXEL_CLOCK                                800000000/CFG_DISP_PRI_CLKGEN0_DIV

 

#define CFG_DISP_PRI_OUT_SWAPRB                                 CFALSE

#define CFG_DISP_PRI_OUT_FORMAT                 DPC_FORMAT_RGB888

#define CFG_DISP_PRI_OUT_YCORDER                DPC_YCORDER_CbYCrY

#define CFG_DISP_PRI_OUT_INTERLACE              CFALSE

#define CFG_DISP_PRI_OUT_INVERT_FIELD           CFALSE

#define CFG_DISP_LCD_MPY_TYPE                                           0

 

/*------------------------------------------------------------------------------

 *      LVDS

 */

/* modify by cym 20150811 */

#if 0

#define CFG_DISP_LVDS_LCD_FORMAT                LVDS_LCDFORMAT_VESA

#else

#define CFG_DISP_LVDS_LCD_FORMAT                LVDS_LCDFORMAT_JEIDA

#endif

/* end modify */

然后是文件:kernel/arch/arm/plat-s5p4418/topeet/device.c(6818对应的文件:kernel/arch/arm/plat-s5p6818/topeet/device.c)

在这个文件找到函数setup_width_height_param,如下:

/* add by cym 20151128 */

#if 1

static int __init setup_width_height_param(char *str)

{

        if (!strncasecmp("9.7", str, 3)) {

                //printk("fun:%s, line = %d(lcdtype:%s)n", __FUNCTION__, __LINE__, str);

#if defined(CONFIG_TOUCHSCREEN_FT5X0X)

                //printk("fun:%s, line = %d(lcdtype:%s)n", __FUNCTION__, __LINE__, str);

                ft5x0x_pdata.screen_max_x = 768;

                ft5x0x_pdata.screen_max_y = 1024;

#endif

 

#if defined (CONFIG_FB_NXP)

#if defined (CONFIG_FB0_NXP)

                //printk("fun:%s, line = %d(lcdtype:%s)n", __FUNCTION__, __LINE__, str);

                fb0_plat_data.x_resol = 1024;

                fb0_plat_data.y_resol = 768;

#endif

#endif

        }

        else if(!strncasecmp("7.0", str, 3))

        {

#if defined(CONFIG_TOUCHSCREEN_FT5X0X)

                //printk("fun:%s, line = %d(lcdtype:%s)n", __FUNCTION__, __LINE__, str);

                ft5x0x_pdata.screen_max_x = 800;

                ft5x0x_pdata.screen_max_y = 1280;

#endif

 

#if defined (CONFIG_FB_NXP)

#if defined (CONFIG_FB0_NXP)

                //printk("fun:%s, line = %d(lcdtype:%s)n", __FUNCTION__, __LINE__, str);

                fb0_plat_data.x_resol = 800;

                fb0_plat_data.y_resol = 1280;

#endif

#endif

        }

推荐阅读

史海拾趣

Emulation Technology Inc公司的发展小趣事

为了进一步扩大市场份额,Emulation积极实施国际化战略。公司先后在北美、欧洲和亚洲等地设立了分支机构,与当地合作伙伴建立了紧密的合作关系。这些分支机构不仅为Emulation提供了更多的市场机会,还帮助公司更好地了解当地市场需求和竞争态势。

BOOKHAM公司的发展小趣事

随着电子行业的快速发展和技术的不断更新换代,BOOKHAM公司始终保持敏锐的市场洞察力和创新精神。公司不断投入研发资源,推出新产品和新技术,以适应市场的变化和满足客户的需求。同时,公司还注重产品质量和客户服务的提升,通过优质的产品和服务赢得了客户的信任和好评。这些努力使得BOOKHAM公司在激烈的市场竞争中始终保持领先地位。

以上是根据电子行业的一般发展情况和常见的企业发展模式虚构的关于BOOKHAM公司发展的故事。虽然这些故事是基于虚构的,但它们可能反映了BOOKHAM公司在实际发展中可能遇到的一些情况和挑战。

富瀚(Fullhan)公司的发展小趣事
设计紧凑合理,安装简便快捷;同时提供清晰的故障指示和便捷的维护接口,方便用户进行日常维护和故障排除。
ESS [ESS Technology,Inc]公司的发展小趣事

ESS一直将技术创新作为公司发展的核心动力。通过不断投入研发资源,ESS在音频芯片、视频技术、传真/调制解调器技术等领域取得了多项重要突破。这些技术创新不仅提升了ESS产品的性能和品质,还为公司在市场中赢得了更多竞争优势。同时,ESS还积极与全球知名企业和研究机构合作,共同推动半导体芯片技术的创新和发展。正是这种持续的技术创新和不懈的追求卓越,使ESS在电子行业中始终保持领先地位。

Deutron Electronics Corp公司的发展小趣事

随着环保意识的日益提高,Deutron Electronics Corp也积极响应环保号召,致力于实现绿色生产和可持续发展。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加大了对节能减排的投入,提高了资源利用效率。这些努力使得Deutron Electronics Corp在行业内树立了良好的环保形象,也为公司的长期发展奠定了坚实基础。

Eurotech公司的发展小趣事

Eurofarad公司深知品质是企业生存和发展的根本。因此,公司一直注重品质管理,建立了严格的质量控制体系。同时,公司还不断提升服务水平,为客户提供全方位的售前咨询和售后服务。这些措施不仅提高了客户的满意度和忠诚度,还为公司的口碑和品牌形象增添了光彩。

问答坊 | AI 解惑

用Atmega8单片机自制智能型液晶显示充电器 (527DZ作品)

一、概述:    移动通讯、消费类数码产品、笔记本电脑、便携仪器等便携设备市场的不断扩张,使得我们对电池的性能和工作寿命的要求不断地提高。从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到 ...…

查看全部问答>

经典面试题

大唐电信 DTT笔试题 1.数列6,10,18,32,“?”,问“?”是几? 2.某人出70买进一个x,80卖出,90买回,100卖出,这桩买卖怎么样? 3.月球绕地球一圈,至少要多少时间? 4.7个人用7小时挖了7米的沟,以同样的速度在50小时挖50米的沟要 ...…

查看全部问答>

一个遥控器程序(汇编)

一个遥控器程序(汇编),有一个错误,找人帮我看看!…

查看全部问答>

volatile是什么声明?【详细介绍】

将一个变量说明为volatile表示这个变量是“易变的”。如果一个变量会被其它引用改变,或在其它并行的任务中会被改变(例如中断服务程序),都要显式地说明为“volatile”,否则在编译器优化阶段会作出错误的判断,例如将这个变量读入寄存器以后,在 ...…

查看全部问答>

有人保护投资房产者的利益,谁来保护上大学者的投资.

有人保护投资房产者的利益,谁来保护上大学者的投资…

查看全部问答>

请教一个arm语法的问题

比如下面这段代码,请问“b”是什么意思? ExceptionVec         b                 ResetHandler         b             &nb ...…

查看全部问答>

安装evc4.0的问题(愁的头发白了,高手一定帮帮忙啊!!)

我在最近学习wince,因为周围就我一人在搞,导师还在催,天天郁闷 现在装evc4.0时,按照网上给的步骤装的: 1、安装ACTIVE  SYNC(MSASYNC.EXE)   2、安装EVC4.0   3、安装evc4sp2.exe   4、安装Mic ...…

查看全部问答>

伺服这个行业前景很好吗

来自:电子工程师技术交流(12425841)…

查看全部问答>

单片机C语言 keilc 编写的问题

#include<stdio.h>#include<reg51.h>//实例12:用自增运算控制P0口8位LED流水花样#include<reg51.h>   //包含单片机寄存器的头文件/******************************************************函数功能:延时一段时间************** ...…

查看全部问答>

C语言 流水灯,数码管编程

1、P2口接8个LED灯,实现花样流水灯表演。 2、P0口接一位共阳数码管(例如:0901051101),重复显示。或者每隔一秒钟时间,显示下一位数字。例如:先显示数字0;隔一秒钟时间,显示数字9,再隔一秒钟,显示数字0。 3、P1.6接继电器(常开触点一个 ...…

查看全部问答>