您的位置:首页 > 其它

MTK DriverOnly——LCD移植

2013-12-09 16:26 573 查看
引言:往往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:器件供应商

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

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

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





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

三、拷贝驱动文件

1. 拷贝[Mambo Project]\mtk_6276_11a\custom\drv\LCD\JRD76W_11A_LCM目录下的LCD_C_ST7735S_TDT.c和LCD_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.c和LCD_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模块,编译链接成功:



就此DriverOnly的LCD移植步骤完毕,需要等到工厂那边测试了改版本并反馈信息后,才能进一步对该驱动进行调试优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: