2010年(49)
分类: 嵌入式
2010-09-07 11:09:13
当bootrom被复制到RAM后,第一个执行的程序就是bootConfig.c中的usrInit() =>
usrInit()
{
=>sysStartType = startType,保存启动类型
=> intVecBaseSet()=>excVecInit () 设置中断向量表的基址,然后向基址安装中断向量表
=> sysHwInit (); /* initialize system hardware */在文件sysLib.c中
=>usrKernelInit (); /* configure the Wind kernel */
=> kernelInit() //见下
}
kernelInit()
{
=>初始化并启动内核 //此时有操作系统环境了
=>启动根任务usrRoot
}
usrRoot :
{
=>创建串口设备或其他设备并作为 控制台设备
=>(可选)启动WDB
=> 调用bootCmdLoop()即引导命令行循环程序
}
bootCmdLoop:
{
=>调用usrBootLineInit (sysStartType) 获取默认引导参数
=>使用默认引导参数则调用Autoboot->bootload()
=>或根据键盘中断启动已使用户重新配置引导参数->bootload()
}
bootload()
{
=>根据不同的加载方式加载vxworks映象
{
INCLUDE_SCSI_BOOT=>scsiLoad();
INCLUDE_FD=>fdLoad();
INCLUDE_IDE=>ideLoad();
INCLUDE_ATA=>ataLoad();
INCLUDE_PCMCIA=>pcmciaLoad();
INCLUDE_TFFS=>tffsLoad();
INCLUDE_TSFS_BOOT=>tsfsLoad();
INCLUDE_NETWORK=>netLoad();
}
}