在学习uboot时,对drivers文件夹里的这么多文件很困惑,比如/drivers/video文件夹,里面有特别多关于LCD的子文件驱动,那么uboot启动时是具体调用哪一个呢?
研究了两个小时后搞懂了,下面详细记录一下
我分析时是先从后往前分析。
首先在board/freescale文件夹里找到自己的板子,例如NXP官方是mx6ullevk(正点原子的板子是mx6ull_alientek_emmc)找到板子文件夹里的.c文件,我的是mx6ull_alientek_emmc.c 在这个文件里找到和lcd参数配置有关的代码,如下图

然后知道了关于配置的数组是displays。在搜索框全工程搜索dispalys这个数组名,看看是哪个函数调用了displays

可以看到在video.c文件中board_video_skip 函数有大量关于displays的调用,且video.c文件的目录是arch/arm/imx-common,一看就是arm架构下NXP公司写的通用文件,那一定和video.c有关了。打开这个文件。

本文详细解析了U-Boot中LCD驱动的启动流程,从board_init_r函数开始,经过一系列调用,最终到达mxs_lcd_init函数,完成LCD硬件初始化。涉及函数包括stdio_add_devices、drv_video_init、video_init、video_hw_init、mxs_lcd_panel_setup等。

1259

被折叠的 条评论
为什么被折叠?



