高通LCD lk代码跟踪分析

本文详细分析了高通Bootloader LK中的LCD初始化过程,从Aboot.c的aboot_init函数开始,涉及emmc存储检测、页面大小设置、设备信息读取、显示初始化以及启动模式判断等关键步骤,揭示了启动过程中如何处理不同模式的切换,如正常启动、恢复模式和下载模式。
摘要由CSDN通过智能技术生成
H文件里面的所有参数都是在Oem_panel.c里面的int init_panel_data函数调用的。接下来跟踪一下代码。Oem_panel.c位于bootable\bootloader\lk\target目录下。



Aboot.c:void aboot_init函数解析:

void aboot_init(const struct app_descriptor *app)
{
unsigned reboot_mode = 0;

/* Initialise wdog to catch early lk crashes */
#if WDOG_SUPPORT
msm_wdog_init();
#endif

/* Setup page size information for nv storage */
if (target_is_emmc_boot()) //检测是emmc还是flash存储,并设置页面大小,一般是2048
{
page_size = mmc_page_size();
page_mask = page_size - 1;
mmc_blocksize = mmc_get_device_blocksize();
mmc_blocksize_mask = mmc_blocksize - 1;
}
else
{
page_size = flash_page_size();
page_mask = page_size - 1;
}

ASSERT((MEMBASE + MEMSIZE) > MEMBASE);
//断言,如果内存基地址+内存大小小于内存基地址,则直接终止错误
read_device_info(&device); //从devinfo分区表read data到device结构体
read_allow_oem_unlock(&device); //devinfo分区里记录了unlock状态,从device中读取此信息
/* Display splash screen if enabled */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值