在VxWorks 6.9 RTP应用程序中执行shell命令

时间:2017-08-14 15:02:25

标签: rtp vxworks

如何从RTP应用程序执行dump memory (d())xbdCreatePartitiondosFsVolFormatdosFsShow等shell命令? Linux提供系统命令来完成这项工作,如何在VxWorks6.9中实现?

3 个答案:

答案 0 :(得分:0)

如果您正在寻找等效的system(),为了让您执行任意命令,您就不走运了。

但是,用于与之交互的“Shell”实际上是一个C解释器,并且可以从代码中调用正在运行的任何命令。因此,您可以从您自己的代码中调用dosFsVolFormat

这里有一个警告,即大多数功能都在内核中实现,因此这些功能可能在您的RTP中不可用。可用的功能因发行版而异,也可能取决于您的内核配置。您可以将标头的用户版本与内核版本进行比较,以查看可用的内容。

但是,您始终可以编写自己的系统调用,以将内核功能公开给RTP应用程序。

答案 1 :(得分:0)

您不能直接从RTP调用内核函数。您可以创建一个内核模块项目,该项目可以接收来自TCP的命令并为您执行内核功能。从RTP项目中,您将从TCP发送这些命令。您可以使用串行通道协议或消息通道等代替TCP。
这样做的主要原因是将内核空间与应用程序空间分开,以便您的应用程序不会导致内核崩溃。

答案 2 :(得分:-1)

我假设你有一台主机和一个在vxworks上运行的目标。这意味着您使用的是交叉编译器IDE,例如Windriver Workbench或Tornado。

此时,您有两种可能性。

1)您的目标上有VGA或HDMI端口,因此您可以轻松插入显示器,并且可以看到vxworks外壳在蓝屏上运行。

您可以运行shell命令。

https://userweb.jlab.org/~brads/Manuals/VxWorks/vxWorks_commands.html

2)您可以使用windriver调试工具。但是您需要向vxworks内核映像添加组件,例如INCLUDE_DEBUG_AGENT。您可以自己配置它。连接远程设备时,可以打开shell窗口并开始键入系统调用。

https://borkhuis.home.xs4all.nl/vxworks/vxw_pt2.html

祝你好运......