MTK平台驱动基本介绍-1

本文档介绍了在MTK6225平台上添加LCD驱动的步骤,包括修改gprs.mak文件,添加屏幕厂商和型号相关的文件夹,并详细解释了各配置选项的含义。在LCD驱动中,重点讲解了如何配置LCD_CMD_DMA_MODE、LCD_16BIT_MODE等选项,以及DMA和非DMA方式下的数据传输。此外,还展示了LCD初始化函数和LCD_BlockWrite_SSD1289()的实现,以及在遇到问题时的调试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------MTK6225
一:LCD
   文件位于custom/drv/LCD
   以华立维的一款240X320的屏为例介绍如何添加LCD驱动
   gprs.mak
   LCD_MODULE  =  HUALIWEI_SSD1289_LCM
   MAIN_LCD_SIZE =  240X320  
   Option
   COM_DEFS_FOR_HUALIWEI_SSD1289_LCM        = HUALIWEI_SSD1289_LCM SSD1289 COLOR_LCD TFT_MAINLCD QVGA_MAINLCD

   在custom/drv/LCD添加HUALIWEI_SSD1289_LCM文件夹,下面有5个文件。文件名同MTK系统自带的(lcd.c lcd_hw.h lcd_sw.h lcd_sw_inc.h lcd_sw_rnd.h)。
   
   HUALIWEI--------------屏的厂家
   SSD1289-----------------屏的驱动芯片
   LCM----------------------屏
   240X320-----------------屏的分辨率
   COLOR_LCD----------彩色
   TFT_MAINLCD-------屏的类型,对应的还有CSTN,OLED。目前主要是TFT
   QVGA_MAINLCD----屏的分辨率


  做了上述修改以后,编译时,lcd驱动就对应HUALIWEI_SSD1289_LCM文件夹里的驱动。文件夹里的5个文件,通常lcd_hw.h, lcd_sw_rnd不需要修改。lcd_sw_inc.h只是定义屏的分辨率。如下:
#ifdef __MMI_MAINLCD_128X128__
#define LCD_WIDTH   128
#define LCD_HEIGHT  128
#elif (defined(__MMI_MAINLCD_128X160__))
#define LCD_WIDTH   128
#define LCD_HEIGHT  160
#elif (defined(__MMI_MAINLCD_176X220__))
#define LCD_WIDTH   176
#define LCD_HEIGHT  220
#elif (defined(__MMI_MAINLCD_240X320__))
#define LCD_WIDTH   240
#define LCD_HEIGHT  320
#endif

#define UI_DEVICE_WIDTH             LCD_WIDTH
#define UI_DEVICE_HEIGHT            LCD_HEIGHT
修改比较多的是lcd.c和lcd_sw.h。
    Lcd_sw.h
        #define LCD_CMD_DMA_MODE---------是否使用DMA方式?(DMA简单,速度快,通过MTK的寄存器进行操作,但灵活性差。非DMA方式,直接对地址操作,灵活性好,但速度会有影响。目前,一般都是用DMA方式)
          #define LCD_16BIT_MODE-----------------lcd使用16位总线?(由硬件决定)

      
          #define LCD_SSD1289_CTRL_ADDR  LCD_PARALLEL0_A0_LOW_ADDR
          #define LCD_SSD1289_DATA_ADDR  LCD_PARALLEL0_A0_HIGH_ADDR
          #define MAIN_LCD_CMD_ADDR     LCD_SSD1289_CTRL_ADDR
          #define MAIN_LCD_DATA_ADDR    LCD_SSD1289_DATA_ADDR

        #define MAIN_LCD_OUTPUT_FORMAT  LCM_16BIT_16_BPP_RGB565_1



        #define LCD_delay_SSD1289() /
        {/
                volatile kal_uint16 iI; /
                for (iI = 0; iI < 0x20; iI++);/
        }

    #ifdef LCD_CMD_DMA_MODE-------------DMA方式

        #define LCD_SEND_DMA_CMD(n) /
        {/
                while (LCD_IS_RUNNING);/
                DISABLE_LCD_TRANSFER_COMPLETE_INT;/
                DISABLE_ALL_LCD_LAYE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值