?? vxworks bsp和啟動過程.htm
字號:
</blockquote> <p style="line-height: 150%"><strong><big>romInit.s</big></strong></p> <blockquote> <p style="line-height: 150%">匯編語言文件,是VxWorks Boot ROM和ROM based image的入口,參見 <a href="http://drew.nease.net/mypage/sourcecode.htm#INIT" target="_blank">系統啟動部分</a></p> </blockquote> <p style="line-height: 150%"><strong><big>sysALib.s</big></strong></p> <blockquote> <p style="line-height: 150%">匯編語言文件,程序員可以把自己的匯編函數放在這個文件里,在上層調用.VxWorks image的入口點_sysInit在這個文件里,是在RAM中執行的第一個函數.</p> </blockquote> <p style="line-height: 150%"><strong><big>sysLib.c</big></strong></p> <blockquote> <p style="line-height: 150%"><big>包含一些系統相關的函數例程,提供了一個board-level的接口,VxWorks和應用程序可以以system-indepent的方式生成.這個文件還能包含目錄target/config/comps/src的驅動.</big></p> </blockquote> <p style="line-height: 150%"><strong><big>sysScsi.c</big></strong></p> <blockquote> <p style="line-height: 150%">可選文件用于Scsi設備設置和初始化.</p> </blockquote> <p style="line-height: 150%"><strong><big>sysSerial.c</big></strong></p> <blockquote> <p style="line-height: 150%">可選文件用于所有的串口設置和初始化.</p> </blockquote> <p style="line-height: 150%"><strong><big>bootrom.hex</big></strong></p> <blockquote> <p style="line-height: 150%"><big>ASIC文件包含VxWorks Boot ROM代碼</big></p> </blockquote> <p style="line-height: 150%"><strong><big>VxWorks</big></strong></p> <blockquote> <p style="line-height: 150%">運行在目標機上,完整的,連結后的VxWorks二進制文件.</p> </blockquote> <p style="line-height: 150%"><strong><big>VxWorks.sym</big></strong></p> <blockquote> <p style="line-height: 150%">完全的,連結后帶有符號表的VxWorks二進制文件</p> </blockquote> <p style="line-height: 150%"><strong><big>VxWorks.st</big></strong></p> <blockquote> <p style="line-height: 150%">完全的,連結后,standalone,帶有符號表的VxWorks二進制文件</p> <p style="line-height: 150%"> </p> </blockquote> </blockquote> </blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3"><strong>BSP用"make"來編譯連接生成(Created),而不是用Tornado的工具.</strong></font></li> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3"><strong>BSP和應用程序都可以在"make"或"tornade"上開發(developed)</strong></font></li> </ul> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3"><strong>BSP被設置包括以下驅動:</strong></font></li> </ul> <blockquote> <blockquote> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3">中斷控制interrupt controller,計時器timer(sys/aux),串口UART(serial),顯示屏LCD,鍵盤Keyboard(opt),觸摸屏touch-screen(opt).</font></p> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3">前面三個是BSP的主要部分. </font></p> </blockquote> </blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3"><strong>BSP默認的download VxWorks RAM image方式是從ethernet.</strong></font></li> </ul> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="3"><strong>串口電纜需要用來和開發板(COM1)通信,通過協議WDB.</strong></font></li> </ul> </blockquote> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="4"><strong> VxWorks Image的種類:</strong></font></p> <blockquote> <blockquote> <blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="5"><small><small>Loadable images.</small></small></font></li> <li> <p style="line-height: 150%"><font face="System" lang="ZH-CN">ROM</font><font face="宋體" lang="ZH-CN">-based images---compressed/uncompressed.</font></li> <li> <p style="line-height: 150%"><font face="System" lang="ZH-CN">ROM</font><font lang="ZH-CN"><strong>-</strong>Resident images.</font></li> </ul> <blockquote> <p style="line-height: 150%"><b>ROM-resident</b> image 對一些系統內存RAM資源較少的情況下,為了節省資源,只拷貝image中的數據部分(data segment)到內存RAM,留下程序部分(text segment)在ROM中執行。這樣空出更多的RAM空間給應用程序。<br> 并不是所用得板子都支持這種VxWorks image. </blockquote> </blockquote> </blockquote> </blockquote> <blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4"><strong>VxWorks boot images---</strong>A VxWorks image designed to load another VxWorks images containing application code (often refer to as "boot code")</font></li> </ul> <blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="5"><small><small>"Burned" into ROM or loaded into Flash.</small></small></font></li> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN">Maybe execute in ROM/Flash (ROM-resident).</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN">Maybe execute out of RAM.</font><font face="宋體" lang="ZH-CN"> </font></li> </ul> </blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4"><strong>VxWorks images---</strong>A VxWorks image containing "end-user" code,Sub-types:</font></li> </ul> <blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN" size="5"><small><small>Loadable VxWorks image--VxWorks images loaded by VxWorks boot image.</small></small></font></li> </ul> <blockquote> <blockquote> <p style="line-height: 150%">Loadable VxWorks image是通過VxWorks boot image裝載的VxWorks images. </blockquote> </blockquote> <ul> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN">VxWorks ROM image--VxWorks image "burned" into ROM or loaded into Flash.May execute in Flash.</font></li> </ul> <p style="line-height: 150%"><big><strong>VxWorks images consist of:</strong></big><ul> <li> <p style="line-height: 150%"><small><font face="宋體" lang="ZH-CN" size="5"><small>Text segment---executable instruction.</small></font></small></li> <li> <p style="line-height: 150%"><font face="宋體" lang="ZH-CN">Data segment---Initilized global and static varibles.</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN">BSS.</font><font face="宋體" lang="ZH-CN"> </font></li> </ul> </blockquote> </blockquote> <blockquote> <p style="line-height: 150%"><b>VxWorks Image文件類型的說明</b></p> <blockquote> <p style="line-height: 150%"><b>Uploaded images(通過網口或串口下載到RAM):</b></p> <p style="line-height: 150%">vxWorks - basic Tornado, shell 和 symbol table 在主機端 <br> vxWorks.st(文件很大)- 獨立的 image,包含shell和 symbol table在目標板運行<br> <br> <b>ROM based images(直接燒入ROM的VxWorks):</b></p> <p style="line-height: 150%">vxWorks_rom - Tornado in ROM,非壓縮, 在 RAM 中運行<br> vxWorks.res_rom_nosym - Tornado in ROM, 非壓縮,在 ROM 中運行<br> vxWorks.st_rom - Stand-alone in ROM, 壓縮, RAM 中運行<br> vxWorks.res_rom - Stand-alone in ROM, 非壓縮, ROM 中運行</p> </blockquote> <p style="line-height: 150%"> </p> <p style="line-height: 150%"><strong>非BSP make文件中包括:</strong></p> <p style="line-height: 150%"><big><strong> </strong>include $(TGT_DIR)/h/make/rules.library</big></p> <blockquote> <p style="line-height: 150%"><big>include $(TGT_DIR)/h/make/defs.default(define default value for makefile)</big></p> <p style="line-height: 150%"><big>...............</big></p> </blockquote> <p style="line-height: 150%"><strong>BSP make文件中包括: </strong>include $(TGT_DIR)/h/make/rules.bsp ...</p> <p style="line-height: 150%">ARM7 做VxWorks imgage 時,在makefile 文件中用 MACH_EXTRA 代替 LIB_EXTRA, 這樣生成的VxWorks時不壓縮的在ROM中運行的程序(uncompressed ROM-based VxWorks image),否則就是壓縮的在RAM中運行的程序(compressed RAM-based VxWorks image).</p> <p style="line-height: 150%"> </p> <p style="line-height: 150%"><big><strong>啟動順序的一些概念</strong></big><ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">The sequence of events which occur as power-up are a function of type VxWorks image with will run.</font></li> <li> <p style="line-height: 150%">處理器"跳"到再ROM或Flash中Boot-strap 程序的起點. 這個程序主要有以下作用:</li> </ul> <blockquote> <ul> <li> <p style="line-height: 150%">關閉中斷(來自處理器)</li> <li> <p style="line-height: 150%">初始化目標內存(target memory)</li> <li> <p style="line-height: 150%">裝載要運行的VxWorks image segments</li> <li> <p style="line-height: 150%">Jumps to code to place target in quiet state</li> </ul> </blockquote> </blockquote> <blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4"><strong>啟動順序 Boot Sequence--Loadable VxWorks image</strong></font></li> </ul> <blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Bootstrap code executes and loads text and data segments of boot code(from ROM or Flash) into RAM.具體執行如下:</font></li> </ul> <blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Boot code compressed-Decompression during copy</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Boot code uncompressed-copy</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Boot code is ROM-resident-copy data segment only</font></li> </ul> </blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Boot program executes and loads VxWorks image into RAM.<u>Jumps to VxWorks load point</u>.</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">System initialization code statically linked into loaded VxWorks image executes and completes initialization.</font></li> </ul> </blockquote> <ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4"><strong>Startup Sequence--VxWorks 初始化</strong></font></li> </ul> <blockquote> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4"><strong>做以下工作:</strong></font><ul> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Place hardware environment in a quiet state.</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Initalize and start the wind kernel</font></li> <li> <p style="line-height: 150%"><font lang="ZH-CN" face="宋體" size="4">Spawn a tast to complete system initialization</font></li> </ul> </blockquote> <ul> <li>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -