bootloader启动流程(3)

2020-05-01 10:43

uint32_ttarget; uint32_tbaseband;

structboard_pmic_data pmic_info[MAX_PMIC_DEVICES]; uint32_tplatform_hlos_subtype; };

根据检测到的board infor加载相应的device tree。

3.2 platform_clock_init()

调用clk_init(msm_clocks_msm8909,ARRAY_SIZE(msm_clocks_msm8909))初始化时钟查询表

/* Clock lookup table */

static struct clk_lookup msm_clocks_msm8909[]= {

CLK_LOOKUP(\CLK_LOOKUP(\

CLK_LOOKUP(\CLK_LOOKUP(\

CLK_LOOKUP(\CLK_LOOKUP(\… }

3.3 qgic_init()

QGIC:Qualcomm GenericInterrupt Controller高通通用中断控制器

初始化QGIC,包括初始化QGIC的分配器(distributor)和初始化CPU具体的控制器。

3.4 qtimer_init()

获取定时器的频率

4. target_early_init()

这里就是串口初始化uart_dm_init(1, 0,BLSP1_UART0_BASE)---> uart_dm_init()

从时钟查找表msm_clocks_msm8909[]串口并配置其时钟频率、配置GPIO为串口、配置串口寄存器等。

5. bs_set_timestamp(BS_BL_START)

设置时间戳,这里的bs指boot stats,引导统计。

6. call_constructors()

构造函数相关初始化

bootloader的构造器一般完成的是初始化设备对象的操作,由于不同的系统在bootloader阶段需要初始化的设备不同,所以需要用户自己调用这些初始化函数。

根据函数名称,就是字面意思——调用构造器,构造器是定义在__ctor_list和__ctor_end之间的函数指针。至于__ctor_list和__ctor_end之间有哪些函数你可以看编译之后输出的map文件,或者链接脚本里面可能也有定义。

7. heap_init()

启动内核堆。

8. __stack_chk_guard_setup()

负责生成canary值

9. thread_init()

初始化线程系统。

10. dpc_init()

dpc:DelayedProcedure Call 延迟过程调用的缩写,初始化dpc系统,相关事件初始化、创建名字为dpc的线程并调用。

11. timer_init()

初始化lk定时器。

12. bootstrap2

thread_resume(thread_create(\DEFAULT_PRIORITY, DEFAULT_STACK_SIZE));

// enable interrupts exit_critical_section();

// become the idle thread thread_become_idle();

创建名字为bootstrap2的线程并调用,调用thread_become_idle()让当前线程处于idle状态。

bootstrap2()

备注:

LBA:logic blockaddress,逻辑块地址 staticintbootstrap2(void *arg){

dprintf(SPEW,\);

arch_init();

//initialize the rest of the platform

dprintf(SPEW,\); platform_init();

//initialize the target

dprintf(SPEW,\); target_init();

dprintf(SPEW,\); apps_init();

return0; }

arch_init()和platform_init()都是空函数

1. target_init() 1.1 spmi_init()

初始化SPMI(System Power Management Interface)总线控制器。 1.2 target_keystatus()

(1) 调用keys_init()初始化全局数据key_bitmap[]为0,此数据记录对应的按键是否被按键。


bootloader启动流程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第十章 中央银行货币政策工具与业务操作(中央银行学,王广谦)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: