当前位置:编程学习 > 网站相关 >>

VxWorks Booting Process

 
一、romInit.s -> romInit()
/*romInit - entry point for VxWorks in ROM*/
1、  initialize CPU and memory
2、  copy bootrom to ROM_TEXT_ADRS
3、  initialize STACK
4、  lock INTERRUPT
5、  jump to romStart()
二、romStart.c->romStart()
/*this is the first C code after reset*/
1、  clear memory
2、  copy vxWorks ROM image to RAM
3、  uncompress if necessary
4、  jump to the object code ENTRY after uncompress
a)         usrEntry - entry point for vxWorks_romCompress, vxWorks_rom and bootrom
b)        sysInit() for vxWorks in RAM(Uncompress)
三、sysALib.s->sysInit()
/*this routine is the system start-up entry point for VxWorks in RAM*/
1、  disable INTERRUPTS
2、  set up STACK
3、  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 initialization
2、  zero out BSS segment for entruing all valiables are initialzed to 0
3、  initialize CACHE and disable CACHE
4、  setting up the interrupt vector base table
5、  installing exception vectors
6、  call sysHwInit() to initialize system hardware
7、  enable CACHE, including instruction cache and data cache
8、  call usrKernelInit() to configure Wind Kernel
9、  if necessary, start WDB before Wind Kernel
10、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 facilities
2、  initialize power managerment, only for PENTIUM
3、  initialize system memory pool
4、  configure memory managerment LIB
5、  initialize sysCtrl support
6、  initialize RTP(real time process)
7、  initialize shared data
8、  initialize shared LIB
9、  initialize MMU
10、              initialize environment valiables
11、              initialize task stack protecting mode
12、              initialize signals
13、              setup system timers
14、              initialize IO system
15、              initialize select LIB
16、              initialize process file system
17、              install console driver and create serial devices
18、              initialize PC_CONSOLE
19、              initialize hash table facilities
20、              initialize symbol table facilities
21、              initialize exception handling
22、              initialize list LIB
23、              initialize logging
24、              initialize POSIX clock
25、              initialize POSIX timers
26、              initialize POSIX shared memory
27、              initialize POSIX memory mapped
28、              initialize debugging
29、              initialize pipe driver
30、              initialize POSIX asyc IO support
31、              initialize STDIO LIB
32、              initialize POSIX queued signals
33、              initialize POSIX semaphores
34、              initialize POSIX threads
35、              initialize POSIX scheduler
36、              initialize signals events
37、              initialize POSIX message queues
38、              dosFs2 filesystem initialization
39、              initialize ramFs filesystem
40、              install ram disk driver
41、              install memory disk driver
42、              install pseudo-terminal driver
43、              initialize SCSI
44、              initialize FD if necessary
45、              initialize ATA
46、              initialize LPT if necessary
47、              initialize TFFS
48、              initialize formatted IO
49、              initialize float point facilites
50、              install DSP surport if necessary
51、              initialize system calls
52、              initialize performance monitoring tools
53、              initialize module loader and unloader
54、              initialize local storage support, such as USB bulk storage
55、              initialize network if INCLUDED
56、              initialize USB component if INCLUDED
57、              initialize shared memory objects
58、              create system and status symbol table
59、              initialize C++ LIB support
60、              initialize Wind Web server
61、              if windview INCLUDED, initialize timestamp
62、              initialize WDB debug agent
63、              initialize interactive SHELL
64、              initialize WINDML if INLCUDED
65、              turn on power managerment
66、            
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,