Боюсь, что на самом деле это не ответ: во многом потому, что прошло более десяти лет с тех пор, как я работал с VxWorks и Ada, и все стало немного туманно.Кроме того, немного длинно для комментария по вашему вопросу
. Поскольку я использовал его, VxWorks поставляется с целым набором программного обеспечения, которое вы конфигурируете для хранения только тех компонентов, которые вам нужны в вашем ядре: в данном случае этопредположительно будет включать пакет математики, такие функции, как sin()
, а также функции операционной системы, такие как taskSpawn()
.
. Процесс сборки Ada / VxWorks, который мы использовали, генерирует частично связанный объектный файл со ссылками наsin()
, taskSpawn()
неразрешено (я не могу вспомнить, как это достигается; если используется GNU ld
, возможно, переключатель -r
или --relocatable
?).Когда VxWorks загружает этот объектный файл через сконфигурированное ядро, неразрешенные ссылки разрешаются, и мы уходим.
Теперь я не знаю, что делает ваш POS_API.Это скин поверх сконфигурированного ядра VxWorks?Загружается ли ваша программа Ада сама?Если это сама программа VxWorks, то почему она экспортирует sin()
?
Я подозреваю, что проблема связана с тем, как вы связали свой исполняемый файл.Может быть, вы могли бы показать нам свой файл GPR?Иначе я просто насвистываю в темноте.