tornado編譯vxworks本質及過程
本文**:
tornado編譯實際上是執行工程底下的makefile,而使用的編譯鏈是gnu的gcc。經測試,在dos命令列中直接執行make是可以完成編譯的(將tornado中make.exe的路徑新增到環境變數中,如c:\tornado2.2\host\x86-win32\bintornado\host\x86-win32\bin即tornado 的可執行程式的路徑,這樣只要在dos介面中找到makefile檔案所在的路徑,然後使用make命令就可以編譯了)。
wtxtcl d:\tornado2.0\host\src\hutils\configgen.tcl d:\tornado2.0\target\proj\tc1600a\tc160
0a.wpj
執行該指令碼後,生成檔案:linksyms.c、prjcomps.h、prjconfig.c、prjparams.h
問題:為什麼建立工程後對config.h和configall.h的修改沒有作用?
在tornado裡面建立工程的時候,會把對元件的配置資訊記錄在***.wpj工程檔案中,而在tornado裡面執行新增或刪除元件時會修改***.wpj檔案中的元件配置資訊;
prjconfig.c檔案很重要,它是根據使用者配置的元件而生成的工程配置檔案,與usrconfig.c的關係:
bootrom編譯bootconfig,
1 i6 }1 `1 o& wvxworks命令列下編譯usrconfig.c ,
0 r( @4 l+ c7 v5 x) u1 r# ~vxworks整合環境(tornado2.2)下編譯prjconfig.c
linksyms.c裡面是符號資訊的集合;
ccppc -g -mcpu=860 -ansi -nostdinc -fvolatile -fno-builtin -fno-for-scope -p -x assembler-
with-cpp -id:\tornado2.0\target\proj\tc1600a -id:\tornado2.0\target\config\tc1600a -id:\to
rnado2.0\target\h -id:\tornado2.0\target\config\comps\src -id:\tornado2.0\target\src\drv -
dcpu=ppc860 -dprj_build -c d:\tornado2.0\target\config\tc1600a\sysalib.s -o sysalib.o
vxrm d:\tornado2.0\target\proj\tc1600a\prjobjs.lst
generating d:\tornado2.0\target\proj\tc1600a\prjobjs.lst...
prjobjs.lst列出了使用者工程.o檔案
ccppc -bd:\tornado2.0\host\x86-win32\lib\gcc-lib\ -nostdlib -r -wl,-x \
-wl,@d:\tornado2.0\target\proj\tc1600a\prjobjs.lst version.o d:\tornado2.0\target\li
b\libppc860gnuvx.a -o partialimage.o
nmppc partialimage.o @d:\tornado2.0\target\proj\tc1600a\prjobjs.lst | wtxtcl d:\tornado2.0
\host\src\hutils\munch.tcl -asm ppc > ctdt.c
該指令碼使得partialimage.o裡的初始化先於工程.o,使得vxworks系統級的初始化比使用者的初始化先執行。
copy partialimage.o tmp.o
已複製 1 個檔案。
d:\tornado2.0\host\x86-win32\bin\makesymtbl ppc tmp.o > symtbl.c
ccppc -c -fdollars-in-identifiers -g -mcpu=860 -ansi -nostdinc -drw_multi_thread -d_reentr
ant -fvolatile -fno-builtin -fno-for-scope -id:\tornado2.0\target\proj\tc1600a -id:\tornad
o2.0\target\proj\tc1600a\datar_manager -id:\tornado2.0\target\proj\tc1600a\eos -id:\tornad
o2.0\target\proj\tc1600a\fomux_sm -id:\tornado2.0\target\proj\tc1600a\hdlcctrl -id:\tornad
o2.0\target\proj\tc1600a\lcdctrl -id:\tornado2.0\target\proj\tc1600a\snmp -id:\tornado2.0\
target\proj\tc1600a\smagent -id:\tornado2.0\target\proj\tc1600a\rtl8366sr -id:\tornado2.0\
target\proj\tc1600a\testctrl -id:\tornado2.0\target\config\tc1600a -id:\tornado2.0\target\
h -id:\tornado2.0\target\h\snmp -id:\tornado2.0\target\config\comps\src -id:\tornado2.0\ta
rget\src\drv -dcpu=ppc860 -dprj_build symtbl.c -o symtbl.o
ccppc -g -mcpu=860 -ansi -nostdinc -drw_multi_thread -d_reentrant -fvolatile -fno-builtin
-fno-for-scope -id:\tornado2.0\target\proj\tc1600a -id:\tornado2.0\target\proj\tc1600a\ala
ar_manager -id:\tornado2.0\target\proj\tc1600a\eos -id:\tornado2.0\target\proj\tc1600a\fom
ux_sm -id:\tornado2.0\target\proj\tc1600a\hdlcctrl -id:\tornado2.0\target\proj\tc1600a\lcd
ctrl -id:\tornado2.0\target\proj\tc1600a\snmp -id:\tornado2.0\target\proj\tc1600a\smagent
-id:\tornado2.0\target\proj\tc1600a\rtl8366sr -id:\tornado2.0\target\proj\tc1600a\testctrl
-id:\tornado2.0\target\config\tc1600a -id:\tornado2.0\target\h -id:\tornado2.0\target\h\s
nmp -id:\tornado2.0\target\config\comps\src -id:\tornado2.0\target\src\drv -dcpu=ppc860 -d
prj_build -c d:\tornado2.0\target\config\comps\src\datasegpad.c
該檔案申請了乙個頁,用於保護**段,詳見該檔案內部的注釋description
l***c -x -n -e _sysinit -ttext 00010000 \
datasegpad.o partialimage.o ctdt.o symtbl.o -o vxworks
d:\tornado2.0\host\x86-win32\bin\vxsize ppc -v 00200000 00010000 vxworks
vxworks: 1333300(t) + 322020(d) + 210668(b) = 1865988 (165628 unused)
01 tornado練習 tornado簡介
coding utf 8 啟動乙個tornado的web服務 import tornado.web from tornado.options import define,options 定義tornado.options能夠從命令列中讀取的命令 此處定義乙個port,預設值為8000,使用optio...
Vmware中執行起了多個個Vxworks
前提 已經在vmware中執行起了乙個vxworks。這裡執行兩個vxworks的困難在於 1 同乙個host,要支撐兩個vxworks的訪問,這裡要涉及ip位址 bootrom vxworks映像的共同使用問題。2 網絡卡設定 目前未解決正在嘗試 以上來自但該帖沒有解決辦法。什麼問題呢?網絡卡!怎...
故障處理 vxwork 大端序和變數指標
1.問題描述 有如下函式 int my read reg euint16 slot,euint16 chip,euint16 reg,euint16 pvalue 在vxwork shell 上敲入如下命令 buf malloc 2 my read reg 0,0,0x44,buf buf 的值是0...