手机开机流程

相关的协议主要包括TS23.122和TS25.304(在LTE中对应的为TS36.304),其中前者主要关注NAS处理,而后者则主要关注AS处理。

深入剖析Qualcomm 手机开机的整个过程,即从按下开 机键一直到出现待机界面,Qualcomm 的手机软件在整个流程中究竟完成了哪些 工作。本文的主要目标是理清手机的初始化流程,并为今后Amoi 定做初始化工 作提供一个参考。 关键字:开机、Rex、TMC、ui_task、CoreApp 一、开机的简要流程分析 Qualcomm 的平台软件支持两种启动方式:一种是Nor Flash 启动方式,另 外一种就 是 Nand Flash 启动方式。Nor Flash 启动方式就相当于硬件直接找到一个入口点 开始执行代码,相比较而言会比较简单,且 Amoi 没有采用此种方式,所以本 文对于这种方式不做详细分析。另外一种就是Nand Flash 启动方式,这种方式 和PC 的启动方式比较相像,也是Amoi 采用的Boot 方式,下面将详细分析在此 方式下面的开机过程。 按下开机键之后,将产生一个时钟中断,从而通知AMSS 主芯片的Boot Load 硬件去将放置于Nand Flash 上面的第一个Block(8K)里面的Boot 代码Copy 到内核内存(RAM,这个内存应该是CPU 自带的内存,同后面提到的SDRAM 有 一定区别,可以把它当作CPU 的Cache)的0xFFFF0000 地址,并开始执行Boot 代码。Boot 的主要任务是完成整个系统的硬件初始化工作(类似于PC 上面的 BIOS 所完成的硬件自检工作,至于Boot 的详细工作机制,后文会有详细描述)。 Boot 所完成的工作里面,最重要的一件事就是会将整个手机软件代码(AMSS 软 件包)拷贝到SDRAM 中,并最后将控制权交给AMSS 软件。说白了,就是Boot 执行完成之后,代码的执行点将由Boot 跳转到AMSS软件的的入口点函数main(). (此函数在mobile.c 里实现)。 代码运行到了Main()之后,在这个函数里面将完成操作系统(rex)的初始化 工作,其实现方法是调用 rex_init()。Rex_init()完成的工作很简单: 1.完成操作系统必要的一些数据结构(timer 链表、任务链表等))的初始化 之外; 2.接下来,它创建了三个任务,分别是:rex_idle_task、rex_dpc_task 和 tmc_task。 Idle 任务没什么好解释的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值