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移植步骤完毕,需要等到工厂那边测试了改版本并反馈信息后,才能进一步对该驱动进行调试优化。
一、原理图确认
首先通过硬件人员或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移植步骤完毕,需要等到工厂那边测试了改版本并反馈信息后,才能进一步对该驱动进行调试优化。
相关文章推荐
- MTK DriverOnly——Camera移植
- MTK平台LCD背光应用层到driver分析
- 基于qualcomm平台Dragonboard 410c 的LCD driver移植解析
- 制作MTK driver only 版本
- 基于ARM9处理器的linux-2.6.32.2操作系统内核移植手记part5.2(LCD驱动源码分析及移植之platform driver)
- MTK怎样移植LCD 驱动
- [lcm] MTK平台移植屏幕lcd过程要点
- s3c2440之LCD驱动移植
- LCD移植
- MTK LCD白屏解决方案
- MTK Android Driver :battery
- mtk移植总结_MTK
- linux下 s3c2440 lcd驱动移植详解
- 高通平台 lcd driver 调试小结
- ARM9开发板FL2440移植Linux-3.0内核————MMC和LCD驱动
- s5pc110 lcd driver分析(1) (转)
- MTK Android Driver :modem
- linux-2.6.30.24 移植lcd
- 不同的LCD之间程序移植时配置参考
- MTK 驱动开发(29)---TP 驱动移植