主要功能
初始化硬件PMIC,检测电池在位,初始化电量计。
涉及文件
preloader/platform/mt6768/src/core/main.c
preloader/platform/mt6768/src/drivers/platform.c
整体流程图
流程分析
- link_descriptor.ld定义了preloader的入口函数
path : bootloader/preloader/platform/mt6768/link_descriptor.ld
ENTRY(_start)
- init.S定义了_start,并跳转到main执行
path : bootloader/preloader/platform/mt6768/src/init/init.s
.globl _start
_start:
b resethandler
/* * 设置svc32模式
* 禁止中断fiq&irq
* clear BSS
* setup stack
* 跳转main执行
*/
entry :
LDR r0, =bldr_args_addr
B main
- main函数
path : preloader/platform/mt6768/src/core/main.c
main()
{
...
bldr_pre_init()
...
bldr_post_process()
...
}
path : preloader/platform/mt6768/src/drivers/platform.c
bldr_pre_init()
bldr_pre_init()
{
...
pmic_init()
...
}
bldr_post_process()
bldr_post_process()
{
...
platform_post_init()//电池检测,设置bootarg传参给lk
...
}