Портирование проблем в VxWorks - PullRequest
0 голосов
/ 10 июня 2009

Я публикую подробности на мои предыдущие вопросы. Мне нужно портировать кодовую базу c / c ++, которая уже поддерживает Linux / Mac, на VxWorks. Приложение использует API обработки сокетов, pthread, mutex и критических секций.

Я довольно новичок в VxWorks. Не могли бы вы дать мне знать, какие возможные проблемы могут возникнуть?

1 Ответ

1 голос
/ 10 июня 2009

VxWorks обеспечивает стандартные операции с сокетами, так что все должно быть в порядке.
Существует библиотека совместимости pthread, которая также является частью ОС. Вам просто нужно включить компонент pthread.

Без более подробной информации об API мьютекса и обработки критических секций трудно предоставить детали.

VxWorks имеет собственный API для мьютекса и критической секции, но также предоставляет интерфейс POSIX. Различные версии VxWorks соответствуют разным версиям стандарта POSIX.

В зависимости от того, какую версию VxWorks вы используете, интенсивное использование C ++ STL может быть проблематичным (особенно если вы используете старую версию vxWorks).

В C ++ вы должны быть осторожны с экземплярами статических классов. Это работает нормально, но я считаю, что это увеличивает размер программы, так как они должны быть созданы статически и помещены в сегмент .data, я считаю.

Если у вас есть много динамических объектов C ++, создаваемых и уничтожаемых, это окажет большее давление на вашу кучу. Если ваша встроенная система имеет небольшой объем памяти, это может быть проблемой.

Если вы создаете объекты в стеке, не забывайте учитывать это (вы должны сделать то же самое в C со структурами) при создании потоков (у которых стек фиксированного размера инициализирован во время создания).

...