0

我正在发布我以前的问题的详细信息。我需要将已经支持 Linux/Mac 的 ac/c++ 代码库移植到 VxWorks。该应用程序使用套接字、pthread、互斥锁和临界区处理 API。

我对 VxWorks 很陌生。你能告诉我可能出现的问题吗?

4

1 回答 1

2

VxWorks 提供标准套接字操作,所以应该没问题。
有一个 pthread 兼容性库,它也是操作系统的一部分。您只需包含 pthread 组件。

如果没有关于互斥锁和临界区处理 API 的更多详细信息,很难提供详细信息。

VxWorks 有自己的互斥量和临界区 API,但它也提供 POSIX 接口。不同版本的 VxWorks 匹配不同版本的 POSIX 标准。

根据您使用的 VxWorks 版本,大量使用 C++ STL 可能会产生问题(尤其是如果您使用的是旧版本的 vxWorks)。

在 C++ 中,您必须小心静态类实例。它工作正常,但我相信它会增加程序大小,因为它们必须静态实例化并放入我相信的 .data 段中。

如果你有很多动态的 C++ 对象被创建和销毁,它会给你的堆带来更大的压力。如果您的嵌入式系统的内存占用量很小,这可能是个问题。

如果您在堆栈上创建对象,请不要忘记在创建线程(在创建时初始化固定大小的堆栈)时考虑到这一点(您必须在 C 中对结构做同样的事情)。

于 2009-06-10T00:20:19.877 回答