VxWorks Booting Process
一、romInit.s -> romInit()/*romInit - entry point for VxWorks in ROM*/1、 initialize CPU and memory2、 copy bootrom to ROM_TEXT_ADRS3、 initialize STACK4、 lock INTERRUPT5、 jump to romStart()二、romStart.c->romStart()/*this is the first C code after reset*/1、 clear memory2、 copy vxWorks ROM image to RAM3、 uncompress if necessary4、 jump to the object code ENTRY after uncompressa) usrEntry - entry point for vxWorks_romCompress, vxWorks_rom and bootromb) sysInit() for vxWorks in RAM(Uncompress)三、sysALib.s->sysInit()/*this routine is the system start-up entry point for VxWorks in RAM*/1、 disable INTERRUPTS2、 set up STACK3、 jump to usrInit() in usrConfig.c三、usrEntry.c->usrEntry()/*usrEntry - entry point for vxWorks_romCompress, vxWorks_rom and bootrom images.*/1、just jump to usrInit() in usrConfig.c四、usrConfig.c->usrInit()/* usrInit - user-defined system initialization routine*/1、 call sysHwInit0() for BSP-specific initialization2、 zero out BSS segment for entruing all valiables are initialzed to 03、 initialize CACHE and disable CACHE4、 setting up the interrupt vector base table5、 installing exception vectors6、 call sysHwInit() to initialize system hardware7、 enable CACHE, including instruction cache and data cache8、 call usrKernelInit() to configure Wind Kernel9、 if necessary, start WDB before Wind Kernel10、start up root task usrRoot()/*NOTE: in this point, multitasking environment is not enabled*/五、usrConfig.c->usrRoot()/*this is the first task running under multitasking environment, it performs all final initialization and start other tasks*/1、 call usrKernelCoreInit() to initialize Wind kernel facilities2、 initialize power managerment, only for PENTIUM3、 initialize system memory pool4、 configure memory managerment LIB5、 initialize sysCtrl support6、 initialize RTP(real time process)7、 initialize shared data8、 initialize shared LIB9、 initialize MMU10、 initialize environment valiables11、 initialize task stack protecting mode12、 initialize signals13、 setup system timers14、 initialize IO system15、 initialize select LIB16、 initialize process file system17、 install console driver and create serial devices18、 initialize PC_CONSOLE19、 initialize hash table facilities20、 initialize symbol table facilities21、 initialize exception handling22、 initialize list LIB23、 initialize logging24、 initialize POSIX clock25、 initialize POSIX timers26、 initialize POSIX shared memory27、 initialize POSIX memory mapped28、 initialize debugging29、 initialize pipe driver30、 initialize POSIX asyc IO support31、 initialize STDIO LIB32、 initialize POSIX queued signals33、 initialize POSIX semaphores34、 initialize POSIX threads35、 initialize POSIX scheduler36、 initialize signals events37、 initialize POSIX message queues38、 dosFs2 filesystem initialization39、 initialize ramFs filesystem40、 install ram disk driver41、 install memory disk driver42、 install pseudo-terminal driver43、 initialize SCSI44、 initialize FD if necessary45、 initialize ATA46、 initialize LPT if necessary47、 initialize TFFS48、 initialize formatted IO49、 initialize float point facilites50、 install DSP surport if necessary51、 initialize system calls52、 initialize performance monitoring tools53、 initialize module loader and unloader54、 initialize local storage support, such as USB bulk storage55、 initialize network if INCLUDED56、 initialize USB component if INCLUDED57、 initialize shared memory objects58、 create system and status symbol table59、 initialize C++ LIB support60、 initialize Wind Web server61、 if windview INCLUDED, initialize timestamp62、 initialize WDB debug agent63、 initialize interactive SHELL64、 initialize WINDML if INLCUDED65、 turn on power managerment66、补充:综合编程 , 其他综合 ,
上一个:标准模版库学习之关联式容器
下一个:n!=2^k的双调排序网络