展讯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的初始化过程基本上理清了。
-
芯片
+关注
关注
455文章
50764浏览量
423372 -
展讯
+关注
关注
4文章
177浏览量
35058
发布评论请先 登录
相关推荐
评论