2009-06-09 103 views
0

我將詳細信息發佈到我以前的問題。我需要將已經支持Linux/Mac的c/C++代碼庫移植到VxWorks。該應用程序使用套接字,pthread,互斥鎖和關鍵部分處理API。將問題移植到VxWorks

我是VxWorks的新手。你能否告訴我可能出現的問題是什麼?

+0

標題肯定會在大多數地方不同。 – 2015-05-28 17:52:20

回答

1

VxWorks提供了標準套接字操作,所以應該沒問題。
還有一個pthread兼容性庫也是操作系統的一部分。您只需包含pthread組件。

沒有關於互斥和關鍵部分處理API的更多細節,很難提供細節。

VxWorks擁有自己的互斥鎖和關鍵部分API,但它也提供了一個POSIX接口。不同版本的VxWorks與不同版本的POSIX標準相匹配。

根據您使用的VxWorks版本的不同,重C++ STL的使用可能會有問題(尤其是如果您使用的是舊版本的vxWorks)。

在C++中,你必須小心靜態類實例。它工作正常,但我相信它增加了程序的大小,因爲它們必須靜態實例化並放入我相信的.data段。

如果你有很多動態C++對象被創建和銷燬,它會給你的堆施加更多的壓力。如果您的嵌入式系統具有較小的內存佔用空間,可能會造成問題。

如果您在堆棧上創建對象,當您創建線程(在創建時已初始化一個固定大小的堆棧)時,請不要忘記對此進行解釋(您必須在C中使用結構執行相同的操作)。