Не удается использовать sysAuxClkRateSet (int ticksPerSecond) в Rx-приложении VxWorks

Я могу использовать API Aux Clock из проекта Kernel Image, но при попытке использовать те же API, например, sysAuxClkRateSet (int ticksPerSecond) в проекте RTP, я получаю неопределенную ссылку на ошибку sysAuxClkRateSet. Я работаю над Vxworks 7.0. Я добавил API в пользовательский список системных вызовов и попробовал его, ошибки компилятора устраняются, но когда элемент управления попадает в этот API, он не работает и плата перезагружается. Я использую плату TI Sitara a9, 4377. Любые входные данные о том, как заставить это работать, действительно помогли бы. Заранее спасибо !!

0

Решение

sysAuxClkRateSet — это API-интерфейс пространства ядра, которого нет в заголовочных файлах пользовательского режима.

Чтобы использовать эту функцию из RTP, вы можете либо использовать механизм, такой как msgQ, для отправки команд из RTP в задачу пространства ядра, либо написать собственный системный вызов для предоставления этой функции.

Для этого конкретного случая использования вы, вероятно, захотите создать статический системный вызов, что означает, что вы можете вызывать sysAuxClkRateSet непосредственно из RTP. Это потребует модификации и перестройки библиотек VxWorks, поэтому вы, вероятно, захотите основывать свое ядро ​​на проекте VSB, а не на библиотеках по умолчанию — хотя, если вы используете VxWorks 7, у вас уже будет VSB.

0

Другие решения

sysAuxClkRateSet — это API-интерфейс пространства ядра, поэтому он не будет работать в RTP.

0

По вопросам рекламы [email protected]