symbian手机启动过程 Saturday, October 10, 2009

最近两个星期一直都搞手机启动的流程。从boot strap直到standby出现。
大体的流程是boot strap----〉加载kernel-----〉基础初始化阶段,主要是初始化文件系统、加载本地化设置、设置基本的硬件信息和为下一个阶段的启动做准备------〉系统初始化阶段,加载app server和engine等等------〉完成启动。
这是一个大体的流程,因为涉及太多没有public的信息,只能写这么多纪念一下这些天的努力。
下个阶段用2-3周时间把application 框架再看看,就进入多媒体架构。
2008.2.15
发现了一本非常好的书《Symbian.OS.Internals.Real.time.Kernel.Programming》,这本书有一章讲bootup。不过需要注意各个公司的phone的启动过程都会有些差别。

2009.08.11

在kernel启动过程中要做如下工作:
1》 分4个阶段初始化asic/variant
2》 分2个阶段初始化memory model
3》初始化中断和异常
4》创建kernel object containers并创建头节点
等等,大体是13个必须要做的任务
在不同类里面的initX函数代表不同的对象的不同启动阶段,显然init是initialize的意思,后面的数字代表不同的阶段。比如asic/variant最后一个初始化Init3主要打开系统tick,就是大家常说的滴答时钟,以及毫秒计时器。
需要说明的是这些不同对象的不同启动阶段是交替完成的,比如只有在asic/variant初始化了协调处理器后,才能初始化Memory model;然后才能进入asic/variant的第二个初始化阶段。他们都是前后依赖的。


Kernel中运行的线程以及功能

0 comments: