uboot中关于LCD的代码分析
2025-02-14 来源:cnblogs
以下内容源于朱有鹏《物联网大讲坛》课程的学习,如有侵权,请告知删除。
1、在uboot-jiuding/board.c中,init_sequence中的display_banner中的open_backlight函数中,给GPF3_5输出高电平。


注释掉这一句uboot的LCD显示照样正常的,因为后面LCD操作的部分还会再做一遍的。
真正的初始化LCD系统并且显示logo,在start_armboot函数的后段的x210_preboot_init函数中(这个函数在mpadfb.c文件中);此函数纯粹是九鼎在移植时添加的。如果我们自己移植uboot可以考虑自己去添加。
2、logo显示和LCD屏幕分辨率适配
LCD驱动mpadfb.c文件(此文件在uboot/drivers/video目录下)中,有一个函数mpadfb_init(),下面分析此函数。

(1)fb_init函数给framebuffer相关的数据结构赋值。

左值的info是一个结构体,这个结构体描述fb驱动中的硬件设备参数的;
右值的lcd是自己定义的一个数据结构,里面的值都是我们人为配置给驱动体系的。
(2)lcd_port_init看是lcd端口的初始化,端口就是GPIO,所以这个函数是在初始化LCD相关的SoC的引脚。

(3)lcd_reg_init是LCD的寄存器的初始化,就是SoC的LCD控制器中的那些寄存器的初始化。


(4)以上三个函数调用执行完后,LCD初始化就结束了。接下来是写东西和开背光。
(5)display_logo(&s5pv210_fb);这个函数负责把logo图片写到LCD的fb中去。

(6)backlight_brigness_init(1);负责开背光。

3、上面涉及的结构体




- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- 蓝牙信道探测技术原理与开发套件实践
- 意法半导体中国本地造STM32微控制器启动规模量产




