MTK DriverOnly——LCD移植

来源:互联网 发布:js判断数字大于等于0 编辑:程序博客网 时间:2024/06/06 04:34

引言:往往DriverOnly版本一开始没有现成的硬件可供调试,所以驱动移植后,只要能正常编译通过即可,不需要实际硬件调试。本文参照了范**的工作笔记[MiniQ3G]driver only.one文档中的LCD部分,在此十分感谢老范的无私奉献!也十分感谢同事冯**在实际操作中给予的指导意见。

 

一、原理图确认

 

首先通过硬件人员或SPM获取到项目的电路原理图,观察LCD部分的电路原理图,了解LCD总线接口模式。

下图为Ginger3G LCD部分的电路示意图:

 

 

二、LCD型号确认

 

1. 询问采购或SPM索要项目器件采购单,找到LCD的型号、规格及物料编号。

Ginger 3g purchasing plan v1.3.xlsx内容如下图:

P/N:部件编号;                  Desc:器件描述;                   Supplier:器件供应商

由上表可知,本项目所使用的LCDTDT公司的1.77"LCD,分辨率为128x160,使用的驱动ICST7735S

 

2. 根据上面查到的部件编号,寻找其他使用该器件的项目,然后参照其他项目来移植LCD驱动代码。

可以找SPM要一份Components list used on each project-20130829.xlsx文档,这样查找起来十分方便,查找结果如下图:

由上表可知,使用该款LCD的项目有B12, B12 lite, Twist, Tiger L,  Mambo,其中MamboMT6276平台的,符合本项目平台要求,所以参考Mambo项目进行LCD的移植工作。

 

三、拷贝驱动文件

 

1. 拷贝[Mambo Project]\mtk_6276_11a\custom\drv\LCD\JRD76W_11A_LCM目录下的LCD_C_ST7735S_TDT.cLCD_SW_H_ST7735S_TDT.h文件到

Ginger3G_Drv_Only\mtk_6276_11a\custom\drv\LCD\JRD76_11A_GEMINI_LCM目录下。

 

2. 将新增文件添加到ClearCase中:

1)对上级目录文件夹JRD76_11A_GEMINI_LCM执行“CheckOut”操作;

2)对LCD_C_ST7735S_TDT.cLCD_SW_H_ST7735S_TDT.h执行“Add to Source Control...”操作,同时勾选上“Checkout after adding to source control”选项,以便后面编辑修改。

 

四、修改驱动代码

 

1. 修改lcd.c中的LCD_FunConfig()函数:

 

2. 确认lcd_sw.h中,LCD使用8BIT总线模式,关闭DMA模式:

 

 

五、修改makefile

 

1. custom.mak中添加如下字段:

 

 

2. fota.mak中添加如下字段:

 

 

六、修改scatterfile

 

修改scatJRD76_11A_GEMINI_FOTA.txt文件。

找到PRIMARY_CACHED_EXTSRAM执行域,添加如下RW字段:

 

 

找到ROM1执行域,添加如下RO字段:

 

 

 

七、编译链接

 

对工程执行rmake,编译结果如下:

发生链接错误,打开Ginger3G_Drv_Only\mtk_6276_11a\build\JRD76_11A_GEMINI目录下的fota.log文件(注意:不是log文件夹下的fota.log文件哦!),定位到错误信息:

 

由此可知,变量LCD_ID没有定义就被LCD_C_ST7735S_TDT.c文件引用,因而造成链接错误。

 

 

因此在lcd.c中定义变量LCD_ID:

 

重新rmake custom模块,编译链接成功:

 

就此DriverOnlyLCD移植步骤完毕,需要等到工厂那边测试了改版本并反馈信息后,才能进一步对该驱动进行调试优化。

原创粉丝点击