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

时间:2017-06-14 06:05:58

标签: c++ vxworks rtos wind-river-workbench

我可以使用Kernel Image项目中的辅助时钟API,但是当尝试在RTP项目中使用相同的API(例如sysAuxClkRateSet(int ticksPerSecond)时),我得到了未定义的引用到sysAuxClkRateSet错误。我正在使用Vxworks 7.0。我将API添加到自定义系统调用列表并尝试了它,编译器错误正在解决,但是当控件遇到该API时,它无法正常工作并且电路板正在重新启动。我正在使用TI Sitara a9,4377板。关于如何使其工作的任何输入都会有所帮助。在此先感谢!!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

sysAuxClkRateSet是一个内核空间API,在用户模式头文件中不存在。

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

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