閱讀408 返回首頁    go 微軟 go Office


VxWorks啟動流程

鏡像種類不同,VxWorks的啟動過程會有所不同。
我們項目中使用的是加載型VxWorks鏡像

  



函數

函數功能

所在文件

bootTask()

(a)    通過createBootLineFromFlash()從FLASH_ADRS中讀出配置信息,組裝bootline字符串到BOOT_LINE_ADRS

(b)    調用autoboot()

bootMain.c

autoboot()

延遲5s,等待用戶輸入

超時後調用sysInit()

bootMain.c

sysInit()

(a)    鎖住中斷

(b)    禁用緩衝

(c)    用缺省值初始化係統中斷表(僅i960)

(d)    用缺省值初始化係統錯誤表(僅i960)

(e)    初始化處理器寄存器到一缺省值

(f)     使回溯失效

(g)    清除所有懸置中斷

激活usrInit(),指明啟動類型

sysALib.s

usrInit()

(a)    調用sysStart() 對bss清零

(b)    調用cacheLibInit() 支持cache

(c)    調用excVecInit(),初始化所有係統和缺省中斷向量

(d)    調用sysHwInit(), usrCacheEnable()

(e)    調用usrKernelInit()

prjConfig.c

usrKernelInit()

依次調用classLibInit(),taskLibInit()qInit(),workQInit(),

kernelInit()

Target\config

\comps\src

\usrKernel.c

kernelInit()

初始化並啟動內核。

(a)激活intLockLevelSet();

(b)從內存池頂部創建根堆棧和TCB

(c)調用taskInit(), taskActivate(),用於usrRoot();

(d)調用usrRoot()

kernelLib.h

usrRoot()

依次調用

usrKernelCoreInit(),memPartLibInit(),memInit(),

usrMmuInit(),sysClkInit(),

usrIosCoreInit(),usrKernelExtrsInit(),usrIo***traInit(),

usrNetworkInit(),selectInit(),usrToolsInit(),

cplusDemanglerInit(),usrAppInit()

prjConfig.c

usrAppInit()

依次調用 startWdTask(), appMain()

usrAppInit.c


最後更新:2017-04-03 12:55:36

  上一篇:go vxWorks驅動架構
  下一篇:go lindo與lingo軟件有什麼區別?