您好,登錄后才能下訂單哦!
這篇文章主要介紹Tool之Simulator有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Simulator可以模擬硬件設備并運行VxWorks系統。這個模擬的系統可以提供VxWorks的大部分標準功能,包括網絡、Shell等等。而且它的構建過程與構建真實硬件設備鏡像的過程也基本是一樣的。有了它,我們就可以脫離硬件設備,直接在Host上開發、運行、測試VxWorks應用。這樣在項目開發階段,盡可能的減少了對硬件設備的依賴。而外界與這個VxWorks系統進行交互的應用程序,是區分不出它是模擬設備還是真實的硬件設備。因此,除了可以加快軟件開發進度,Simulator在很多領域也可以給我們提供幫助,例如教學、項目展示等。
Simulator對應用層提供的API與真實設備上的API沒有什么區別,有區別的僅是對外設的訪問,也就是無法提供一些外設的驅動程序。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,首先新建一個VIP
選擇合適的BSP和編譯器
編譯得到VxWorks鏡像,然后新建一個Simulator Connection,并指定剛剛編譯的鏡像
Connect這個Connection,Simulator就可以使用了
注意事項
Simulator的一些局限性需要了解一下
SMP - 多核的Host能提供更精準的SMP功能
64-bit Simulator - Host需要是64-bit的Windows或Linux
Byte Order - Simulator在Windows/Linux下模擬的是小端環境;而在Solaris下,模擬的是大端環境
Hardware Breakpoint - Simulator不支持Hardware Breakpoint
MMU - 不區分內核/用戶模式,因此RTP有可能破壞Kernel空間
Floating Point - Simulator不支持以下浮點函數
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系統已經自動檢測ISR Stack的上溢和下溢,因此不需要Simulator再做額外工作
資源訪問
Simulator可以模擬VxWorks的大部分標準功能,例如與系統資源或文件系統相關的部分功能如下
NVRAM - Simulator使用Host上的文件來模擬NVRAM,默認位置為鏡像所在的目錄。NVRAM的尺寸為NV_RAM_SIZE,可以通過sysNvRamSet( ) 和sysNvRamGet( )來訪問其空間
Serial Device - 通過組件INCLUDE_HOST_SIO和庫commSio (Windows)或ttySio (Linux/Solaris),Simulator可以訪問Host的串口設備HOST_SIO_PORT_NUMBER,不過僅限于COM1和COM2
Network - 通過Host端的Network Daemon,Simulator可以模擬完整的Network
Shared Memory Network - Simulator可以模擬多CPU板使用共享背板(例如VME總線)進行通信場景
passFS - Simulator可以使用默認包含的組件INCLUDE_PASSFS (pass-through file system) 直接訪問Host的文件。Simulator啟動后創建一個虛擬設備,并格式化為passFS,這個設備的名字默認為"host:",可以在Connection的屬性里修改
然后就可以直接訪問Host的文件
Virtual Disk
Simulator通過Virtual Disk可以模擬塊設備。例如包含相應組件后,使用以下代碼可以在Host端創建3MB的文件fileX,并格式化為有512字節block和32個track的塊設備"/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系統的函數
通過vxsimHostDllLoad()可以加載Host系統的動態鏈接庫
最后是Simulator的Memory Layout,注意它不同于任何真實物理設備的Layout,所以了解一下就可以啦
以上是“Tool之Simulator有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。