Chinaunix首页 | 论坛 | 博客
  • 博客访问: 217431
  • 博文数量: 49
  • 博客积分: 2101
  • 博客等级: 大尉
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-07 10:38
文章分类

全部博文(49)

文章存档

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();

}

}

阅读(1203) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~