以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
一、open_backlight函数
在九鼎为X210开发板移植的uboot源码中,display_banner函数中的open_backlight函数,其(倒数第二句代码)配置GPF3_5输出高电平,如下所示:
但其实将这一句代码注释掉,LCD显示照样正常。这是因为后面LCD操作的部分还会再做一遍的。真正初始化LCD系统并且显示logo,是在start_armboot函数后段的x210_preboot_init函数(这个函数在/drivers/video/mpadfb.c文件)中,该函数是九鼎在移植时添加的(如果我们自己移植uboot可以考虑自己去添加)。
二、显示LOGO
LCD的驱动文件是/drivers/video/mpadfb.c文件,其中有一个函数mpadfb_init,分析如下:
1、fb_init函数(给framebuffer相关的数据结构赋值)
(1)左值的info是一个结构体,这个结构体用来描述fb驱动中的硬件设备参数。
(2)右值的lcd是自己定义的一个数据结构,里面的值都是我们人为配置给驱动体系的。
2、lcd_port_init函数(初始化LCD相关的SoC的引脚)
3、lcd_reg_init函数(初始化LCD的寄存器)
也就是SoC的LCD控制器中的那些寄存器的初始化。
以上三个函数调用执行完后,LCD初始化就结束了。接下来是写东西和开背光。
4、display_logo函数(负责把logo图片写到LCD的fb中)
5、backlight_brigness_init函数(打开背光)
三、根据屏幕设置不同的屏幕参数