這篇文章主要介紹Tool之Simulator有什么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、定海網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Simulator可以模擬硬件設(shè)備并運(yùn)行VxWorks系統(tǒng)。這個(gè)模擬的系統(tǒng)可以提供VxWorks的大部分標(biāo)準(zhǔn)功能,包括網(wǎng)絡(luò)、Shell等等。而且它的構(gòu)建過程與構(gòu)建真實(shí)硬件設(shè)備鏡像的過程也基本是一樣的。有了它,我們就可以脫離硬件設(shè)備,直接在Host上開發(fā)、運(yùn)行、測試VxWorks應(yīng)用。這樣在項(xiàng)目開發(fā)階段,盡可能的減少了對硬件設(shè)備的依賴。而外界與這個(gè)VxWorks系統(tǒng)進(jìn)行交互的應(yīng)用程序,是區(qū)分不出它是模擬設(shè)備還是真實(shí)的硬件設(shè)備。因此,除了可以加快軟件開發(fā)進(jìn)度,Simulator在很多領(lǐng)域也可以給我們提供幫助,例如教學(xué)、項(xiàng)目展示等。
Simulator對應(yīng)用層提供的API與真實(shí)設(shè)備上的API沒有什么區(qū)別,有區(qū)別的僅是對外設(shè)的訪問,也就是無法提供一些外設(shè)的驅(qū)動程序。Simulator至少可以模擬以下硬件或功能
32/64-bit hardware platform
Console
System Timer
Timestamp
Real-time Clock
Auxiliary Clock
MMU
NVRAM
Virtual Disk
SMP
AMP
ED&R
RTP
ROMFS
Shared Data Region
Shared Library
C++
Network Stack
POSIX
VxMP
VSB
System Viewer
ISR Stack Protection
MIPC
Overlapped Memory
啟動
我們來看看如何使用Simulator,首先新建一個(gè)VIP
選擇合適的BSP和編譯器
編譯得到VxWorks鏡像,然后新建一個(gè)Simulator Connection,并指定剛剛編譯的鏡像
Connect這個(gè)Connection,Simulator就可以使用了
注意事項(xiàng)
Simulator的一些局限性需要了解一下
SMP - 多核的Host能提供更精準(zhǔn)的SMP功能
64-bit Simulator - Host需要是64-bit的Windows或Linux
Byte Order - Simulator在Windows/Linux下模擬的是小端環(huán)境;而在Solaris下,模擬的是大端環(huán)境
Hardware Breakpoint - Simulator不支持Hardware Breakpoint
MMU - 不區(qū)分內(nèi)核/用戶模式,因此RTP有可能破壞Kernel空間
Floating Point - Simulator不支持以下浮點(diǎn)函數(shù)
cbrt() ceil() infinity() irint() iround() log2() round() sincos() trunc() cbrtf() infinityf() irintf() iroundf() log2f() roundf() sincosf() truncf() acosf() asinf() atanf() atan2f() ceilf() cosf() expf() fabsf() floorf() fmodf() logf() log10f() powf() sinf() sinhf() sqrtf() tanf() tanhf()
Interrupt - Simulator在Windows下使用Host的message來模擬硬件中斷;而在Solaris和Linux下,使用的是Host的signal
ISR Stack Protection - Windows系統(tǒng)已經(jīng)自動檢測ISR Stack的上溢和下溢,因此不需要Simulator再做額外工作
資源訪問
Simulator可以模擬VxWorks的大部分標(biāo)準(zhǔn)功能,例如與系統(tǒng)資源或文件系統(tǒng)相關(guān)的部分功能如下
NVRAM - Simulator使用Host上的文件來模擬NVRAM,默認(rèn)位置為鏡像所在的目錄。NVRAM的尺寸為NV_RAM_SIZE,可以通過sysNvRamSet( ) 和sysNvRamGet( )來訪問其空間
Serial Device - 通過組件INCLUDE_HOST_SIO和庫commSio (Windows)或ttySio (Linux/Solaris),Simulator可以訪問Host的串口設(shè)備HOST_SIO_PORT_NUMBER,不過僅限于COM1和COM2
Network - 通過Host端的Network Daemon,Simulator可以模擬完整的Network
Shared Memory Network - Simulator可以模擬多CPU板使用共享背板(例如VME總線)進(jìn)行通信場景
passFS - Simulator可以使用默認(rèn)包含的組件INCLUDE_PASSFS (pass-through file system) 直接訪問Host的文件。Simulator啟動后創(chuàng)建一個(gè)虛擬設(shè)備,并格式化為passFS,這個(gè)設(shè)備的名字默認(rèn)為"host:",可以在Connection的屬性里修改
然后就可以直接訪問Host的文件
Virtual Disk
Simulator通過Virtual Disk可以模擬塊設(shè)備。例如包含相應(yīng)組件后,使用以下代碼可以在Host端創(chuàng)建3MB的文件fileX,并格式化為有512字節(jié)block和32個(gè)track的塊設(shè)備"/Q"
INCLUDE_VIRTUAL_DISK (default)
INCLUDE_FS_MONITOR
INCLUDE_XBD_BLK_DEV
INCLUDE_DOSFS_FMT
vdBlkDev = virtualDiskCreate ("fileX", 512, 32, 32*200)
fsmNameInstall("/Q:0", "/Q")
xbdBlkDevCreateSync(vdBlkDev, "/Q")
dosFsVolFormat("/Q", 0, 0)
Host Routine
通過vxsimHostProcAddrGet()可以訪問Host系統(tǒng)的函數(shù)
通過vxsimHostDllLoad()可以加載Host系統(tǒng)的動態(tài)鏈接庫
最后是Simulator的Memory Layout,注意它不同于任何真實(shí)物理設(shè)備的Layout,所以了解一下就可以啦
以上是“Tool之Simulator有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!