展讯SC8810的参数与功能介绍(含sc8810平台LCD架构)

电子说

1.2w人已加入

描述

  展讯SC8810的参数与功能介绍

  展讯SC8810的参数与功能介绍SC8810的工艺说明:采用40纳米CMOS工艺,是一款高集成度、低功耗的TD-SCDMA主流智能手机平台。该芯片集成了1GHz CortexA5处理器、图形加速专用GPU和电源管理单元,实现单芯片支持TD-HSPA/TD-SCDMA/EDGE/GPRS/GSM多模。SC8810面向低成本智能手机市场,可提供接近高端智能手机的互联网及图形性能。展讯提供完整的SC8810 Android系统交钥匙解决方案,帮助客户降低产品开发难度,并缩短产品的开发及上市周期。

展讯
展讯
展讯
展讯

  展讯sc8810平台LCD架构浅析

  从开机过程中LCD初始化的流程,来分析LCD的驱动架构。

  在开机的时候首先进行板级的初始化(U-boot/arch/arm/lib/board.c),现在flash中跑board_init_f(),划分一部分Mermory用来跑U-BOOT,划定范围之外的Mermory在U-boot的时候是不能被操作的。同时预留给malloc() arena、U-Boot code, data & bss、VFD display、LCDdisplay、TLB table、PRam、logBuffer等空间。

  接下来走到RAM中的board_init_r(),建立片选、初始化串口、初始化NAND、MMC、flash,到这里drv_vfd_init(),初始化LCD控制器,drv_vfd_init(),混杂设备初始化、中断初始化、中断使能等等很多操作,先不忙看后面的操作,进入(U-boot/common/stdio.c)drv_vfd_init()里面我们会发现,在这里会对arm_dcc、LCD、vedio、keyboard…等等设备进行初始化。进入(U-boot/common_LCD.c)drv_lcd_init ()中,发现是对LCD进行一个常规的初始化,lcd_init (lcd_base);一方面通过lcd_init()调用lcd_ctrl_init()来完成LCD的初始化,另一方面通过lcd_clear()来完成控制输出的backcolor和frontcolor,并且将LOGO解压并放入Buffer。

  继续看lcd_ctrl_init(),这个函数在(U-boot/drivers/video/sc8810_fb.c)中,lcd_ctrl_init就干了一件事,sc8810fb_probe(lcdbase);提供LCD具体驱动的入口。进入这个probe函数就可以找到lcd_panel[lcd_adapt].panel,通过这个就可以跟到(U-boot/drivers/video)sc8810_fb.c中,lcd_panel[]的成员函数,匹配到具体的驱动实体的结构体,例如:

  .panel = &lcd_panel_hx8357,

  Lcd_hx8357.c这个文件相信大家不会陌生,就是LCD具体的驱动函数。走到hx8357_init()这里通过初始化LCD的寄存器完成具体的LCD的初始化。

  到这里为止,按下开机键到LCD点亮之间这短短时间内,LCD的初始化过程基本上理清了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分