首页 文章

VXWORKS RTOS RTP应用程序

提问于
浏览
3

我的目标是尽可能编译一个C应用程序;让我们说一个简单的Hello World应用程序,然后从Vxworks Tshell加载应用程序然后执行它 .

我已阅读有关实时进程和Vxworks可执行文件“.vxe”的信息 .

我工作的公司使用Vxworks作为在其所有产品上运行的RTOS .

限制 - 我无权访问Tornado开发环境或任何Windriver工具 . 我只能访问运行RTOS的嵌入式硬件 .

是否有第三方编译器可用于构建将在VxWorks上执行的应用程序?

请不要嘲笑我;我想要了解一些超出我专业知识的东西 . 我是电子技师,非常熟悉硬件,但不熟悉RTOS .

2 回答

  • 2

    是的,它可以完成 - 我曾经在使用一些NI产品时自己这样做,这些产品实际上使用vxworks作为RTOS . 以下链接可能有所帮助:

    http://digital.ni.com/public.nsf/allkb/81D1172E3C28A5E4862575CC0076A230

    您只需下载工具链 - 某些版本附加到链接,您也可以从windriver网站获取 .

    由于您不会使用工作台,因此您需要自己维护makefile等 - 这是您需要许可证的,运行gnu编译器并不需要许可证 . 这会留下另一个建议,获得临时许可证,并安装工作台(只是为了获得编译工具链),然后使用make从命令行构建 .

  • 1

    简答:没有

    它不仅仅是编译器 . 您的应用程序需要链接一组库,这些库仅与vxWorks开发环境一起提供 .

    此外,RTP也在VxWorks 6.2中引入 . 任何早于此的东西(任何龙卷风......)都不会支持RTP .

    VxWorks具有可下载内核模块(DKM)的概念,您可以将其视为可以在内核中动态加载的“代码库”或可重定位模块(通过多种方式,包括在vxworks上发出“ld”命令)贝壳) .

    正如mjs指出的那样,可以使用GCC工具链来编译DKM,因为它创建了一个部分链接的.out文件 . 缺少的任何符号都由加载器解析 . 当然,如果你使用任何操作系统原语,

    这些DKM与RTP无关 . RTP是可执行文件,DKM是不直接执行任何操作的代码模块(其他一些代码/ shell通常在刚加载的DKM中调用函数) .

    RTP是一个完全链接的可执行文件,这意味着所有符号(如printf,OS调用等)必须在编译时解析(是的,您可以使用共享库,但仍必须定义符号并且.so指向至) . 这些函数在头文件中声明,并保存在作为Workbench开发工具一部分的库中 .

    如果没有开发工具,库和头文件,则无法为RTP开发代码 .

相关问题