无法在 VxWorks RTP 应用程序中使用 sysAuxClkRateSet( int ticksPerSecond )

Can't use sysAuxClkRateSet( int ticksPerSecond ) in VxWorks RTP application

我可以使用内核映像项目中的辅助时钟 API,但是当我尝试使用相同的 API 时,例如 RTP 项目中的 sysAuxClkRateSet( int ticksPerSecond ) ,我收到了对 sysAuxClkRateSet 错误的未定义引用。我正在开发 Vxworks 7.0。我将 API 添加到自定义系统调用列表并进行了尝试,编译器错误得到解决,但是当控件命中 API 时,它无法工作并且开发板正在重启。我正在使用 TI Sitara a9、4377 板。任何关于如何让它发挥作用的意见都会很有帮助。提前致谢!!

sysAuxClkRateSet 是内核 space API 因此在 RTP 中不起作用。

sysAuxClkRateSet 是内核 Space API,不存在于用户模式头文件中。

为了从 RTP 使用此功能,您可以使用诸如 msgQ 之类的机制,将命令从 RTP 发送到内核 space 任务,或者编写自定义系统调用来公开此功能函数。

对于这个特定的用例,您可能想要创建一个静态系统调用,这意味着您可以直接从 RTP 调用 sysAuxClkRateSet。这将需要修改和重建 VxWorks 库,因此您可能希望将内核基于 VSB 项目而不是默认库 - 尽管如果您使用的是 VxWorks 7,您将已经拥有 VSB。