VxWorks引导程序启动详细过程(bootrom_uncmp.bin).doc_第1页
VxWorks引导程序启动详细过程(bootrom_uncmp.bin).doc_第2页
VxWorks引导程序启动详细过程(bootrom_uncmp.bin).doc_第3页
VxWorks引导程序启动详细过程(bootrom_uncmp.bin).doc_第4页
VxWorks引导程序启动详细过程(bootrom_uncmp.bin).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VxWorks引导程序启动详细过程(bootrom_uncmp.bin)系统上电初始化CPU;配置处理器的工作模式;配置存储器;关闭中断和看门狗;清除Cache; 设置堆栈指针;特定于CPU的其他初始化;配置启动参数(冷启动还是热启动)跳到romStart(int startType).| romInit.s - romInit() :|将Flash中的启动代码拷贝到RAM中,最后调用ROM或RAM中的usrInit();拷贝的内容与生成的内核类型有关,但通常都需将数据段拷贝到RAM中。如果是压缩格式映象,除了拷贝还要进行解压。最后调用sysALibs.s中的sysInit(int startType).|bootInit.c -romStart(int startType) :|用于用于完成最后的CPU初始化部分,并且关闭系统的其他硬件设备,为内核的初始化和启动准备一个单任务的环境(无中断,无任务)。完成内核激活的准备工作:(1)设备处于静止状态;(2)处理器中断处于禁止状态。引导阶段已经实现了(2),一次该函数功能就是使设备处于静止状态。0 用户定义BSP初始化SYS_HW_INIT_0 ();(sysHwInit0())无1 初始化Cache;cacheLibInit()2 清零BBS;bzero (edata, end - edata);3 暗黄安装中断向量; excVecInit ( );4 置硬件静止状态;sysHwInit ();5 配置Wind内核,初始化任务管理和任务队列 usrKernelInit ();6 使能Cache; cacheEnable(INSTRUCTION_CACHE);7 激活跟任务; kernelInit (FUNCPTR) usrRoot,,)|bootConfig.c -usrInit(int startType):|负责在内核激活前,将硬件置于静止状态:1 安装中断向量ISR: S3C2410ExcVecSet();2 安装IRQ/SVC 的堆栈设置程序:_func_armIntStackSplit = sysIntStackSplit;3 复制命令行:strncpy(sysBootLine,DEFAULT_BOOT_LIN,strlen(DEFAULT_BOOT_LINE)+1);4 初始化串口设备,数据结构和禁止串口中断: sysSerialHwInit ();| sysLib.c - sysHwInit():| usrKernel.c - usrKernelInit(void)配置Wind内核,初始化任务管理和任务队列:1. 初始化类库: classLibInit ();2. 初始化任务变量: taskLibInit ();3. 配置内核任务队列: qInit (&readyQHead, Q_PRI_LIST);qInit (&activeQHead, Q_FIFO);qInit (&tickQHead, Q_PRI_LIST);workQInit ();| bootConfig.c -usrRoot (char *pMemPoolStart, unsigned memPoolSize):用于完成系统最后的初始化以及所有硬件的初始化:1 初始化系统内存池:memInit (pMemPoolStart, memPoolSize);2 安装始终中断ISR,设置始终频率,使能时钟: sysClkConnect(FUNCPTR) usrClock, 0);/、connect clock interrupt routine sysClkRateSet (SYS_CLK_RATE); /* set system clock rate */ sysClkEnable (); /* start it */3 初始化IOS:selectInit (NUM_FILES);iosInit (NUM_DRIVERS, NUM_FILES, /null);consoleFd = NONE;4 初始化串口设备,安装串口设备驱动程序,并启动串口设备:/* */5 初始化WDB: wdbConfig();/* configure and initialize the WDB agent */ vxBootFile0 = NULL;6 打开Target Server Console:/* for Target Server Console */ consoleFd = open (/vio/0, O_RDWR, 0);7 设置标准I/O输入输出: ioGlobalStdSet (STD_IN, consoleFd); ioGlobalStdSet (STD_OUT, consoleFd); ioGlobalStdSet (STD_ERR, consoleFd);8 安装管道驱动程序: pipeDrv ();9 初始化各种可得设备:/* */10启动bootCmdLoop任务: taskSpawn (tBoot, bootCmdTaskPriority, bootCmdTaskOptions,b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论