Android平台Bootloader的刷屏功能扩展设计

时间:2013-01-10来源:网络

4 LCD驱动程序设计
LCD驱动程序开发过程中,主要需要实现的是底层驱动程序,底层驱动大体分为两个部分:硬件初始化部分和实现splash_screen函数。
4.1 硬件初始化实现
硬件初始化部分主要由display_init函数来实现,主要包括初始化LCD控制器、初始化LCD处理器、Frame-buffer设备的配置等工作,主要实现的函数如下:
g.JPG
fb_config首先使能I2S写函数,对ILI9481进行复位操作,fbcon_setup函数记录了LCD屏幕参数,包括屏幕分辨率、时序参数、像素比特数(bpp)等参数,B_LCD_Init_ILI9481函数肩负着向framebuffer驱动程序传递数据的任务。初始化LCD控制器的寄存器主要是对LCD的PCD、ARM_INYEN、PBUS_WIDTH、OUT_BPP、LCD_TYPE等寄存器进行配置。LCD控制寄存器主要是对屏幕参数、ARM中断使能、并口LCD中片选信号极性、LCD屏类型、时序特性进行配置。主要寄存器如下:
PCD,配置像素时钟分屏。
ARM_INTEN,配置ARM中断使能信号。当信号为0时,达到中断产生条件后,不产生送到ARM的中断信号;当信号为1时,达到中断产生条件后,产生送到ARM的中断。
PBUS_WIDTH,输出数据线位宽,当配置为并口显示屏时有效。
OUT_BPP,配置BPP位宽。
LCD_TYPE,配置LCD屏类型选择。00为普通RGB接口TFT显示屏,01为Sharp接口TFT显示屏,10为并口LCD显示屏,11为串口LCD显示屏。
4.2 读取图像信息
splash_screen函数主要是定义图像的地址,通过framebuffer对图像进行显示。这里将显示的图像放在了U盘文件中,当LK启动时,直接从SDRAM中读取图像信息,并定义bmp图像的地址为0x14000000。图像显示函数如下:
g.JPG
h.JPG
LCD显示数据大小是由显示模式和显示屏尺寸大小共同决定的。根据设计要求,使用的是320X480个像素、16bpp的256色LCD,显示一屏图像所需的显示缓冲为320×480×16位。在显示缓冲器中,每一个像素都占一个字节,且每个字节又要区分RGB格式。在显示图像时,需要配置相应的寄存器,这些工作在初始化LCD控制器已经完成。其次,确定图像缓冲区的首地址,这个地址在4字节对齐的边界上,而且要在SDRAM的4 MB空间之间,显示缓冲区的数据会直接显示到显示屏上。LCD上显示的不同图像信息就是显示缓冲区内不同数据的输出。

5 LK的测试与调试
在该模块下编写了一个Makefile文件,在调试LK模块时,可以单独编译LK模块,这样就节约了开发的时间。编译LK模块,得到1k.bin文件。开发板上电后,进入U盘模式,用最新生成的1k. bin文件替换掉U盘中原始的文件,通过超级终端连接串口,启动LK。LK启动打印信息如图4所示,LK能正常工作,并能执行LCD显示驱动。

a.JPG



结语
本文通过对Bootloader的研究,提出了一种Android详细给出了LCD控制器操作流程和LCD的驱动设计。系统启动正常,运行稳定,达到了设计的要求。尽管LCD手机在LK启动过程中实现LCD显示的设计方案,并且的种类很多,但驱动程序的设计都可以遵循一定的模式,可以根据自己设计的需求选择合适的方法。该方法对Android系统开发具有一定的借鉴意义和参考价值。

1 2 3

关键词: Bootloader LCD控制器 驱动设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版