在继续之前,您可以从
实时控制器与实时操作系统之间的兼容性中检查实时目标的操作系统。
安装
要使用适用于您的嵌入式系统的 GCC C 交叉编译器设置 Eclipse,请参考
Getting Started with C/C++ Development Tools for NI Linux Real-Time, Eclipse Edition。
如果您正在为 VeriStand 编译 .so 模型,请确保您已安装 NI VeriStand 模型框架(VeriStand Model Framework)。 请参阅
如何安装NI VeriStand Model Framework?
创建 C/C++ 项目
- 运行C/C++ Development Tools for NI Linux Real-Time, Eclipse Edition。
- 出现提示时,选择一个用于存储 Eclipse 项目的文件夹,然后单击“确定”。
- 在 Eclipse 欢迎屏幕中,选择最右侧的 Workbench 图标以打开工作台视图。
- 导航到File>>New>>C Project 并选择Shared Library项目和Cross GCC 工具链,创建一个新 C/C++项目。
- 选择 Debug 和 Release 配置进行创建。
- 当提示配置 Cross GCC 前缀和路径时,从下面的列表中为您的 NI Linux Real-Time 目标选择适当的路径和前缀,并显示在以下 Intel x64 目标的屏幕截图中:
前缀:
(基于ARM的目标,2013软件栈) arm-none-linux-gnueabi-
(基于ARM的目标,2014和2017软件栈) arm-nilrt-linux-gnueabi-
(基于Intel x64的目标,2014和2017软件栈) x86_64-nilrt-linux-
路径:
(基于ARM的目标,2013软件栈) \<National Instruments>\ Eclipse\toolchain\gcc-4.4-arm\i386\bin(基于ARM的目标,2014软件栈) \<National Instruments>\ Eclipse\14.0\arm\sysroots\i686-nilrtsdk-mingw32\usr\bin\armv7a-vfp-neon-nilrt-linux-gnueabi(基于ARM的目标,2017软件栈) C:\build\17.0\arm\ sysroots\i686-nilrtsdk-mingw32\usr\bin\arm-nilrt-linux-gnueabi(基于Intel x64的目标,2014软件栈) \<National Instruments>\Eclipse\14.0\x64\sysroots\i686-nilrtsdk-mingw32\usr\bin\x86_64-nilrt-linux(基于Intel x64的目标,2017软件栈)C:\build\17.0\x64\ sysroots\i686-nilrtsdk-mingw32\usr\bin\x86_64-nilrt-linux
- 如果源文件夹不存在,右键单击您的项目文件夹并选择New>>Source Folder。 然后通过右键单击源文件夹并选择导入来导入 .c 文件。 选择 General>>File System,然后浏览到现有 C 代码的目录以导入 .c 文件。
- 完成后,您的项目浏览器窗格应该如下图所示。在这个例子中,engine.c是我们想要编译成so文件的C文件。如果你正在编译一个Veristand模型的so文件,你需要包含ni_modelframework.c和ni_modelframework.h。有关组件的位置,请参阅 NI VeriStand 模型框架简介 。
- 在Project Explorer选项卡中右键单击您的项目,然后选择Properties 。
- 在Properties窗口的左窗格中选择 C/C++ Build。 在Builder Settings选项卡下,从Builder Type下拉菜单中选择Internal Builder。
- 在Properties窗口的左窗格中选择 C/C++ Build >> Settings。在Tool Settings选项卡中,导航至Cross GCC Compiler>>Miscellaneous 。在Other flags文本框中,在现有文本之后添加一个空格,然后输入以下值之一:
(基于ARM的目标,2017软件栈)-- sysroot = C:\ build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi
(基于Intel x64的目标,2017软件栈)-- sysroot = C:\ build\17.0\x64\sysroots\core2-64-nilrt-linux
- 在Tool Settings选项卡中,导航至Cross GCC Linker>>Miscellaneous,然后在“Linker flags文本框中输入以下值之一:
(基于ARM的目标,2017软件栈)-- sysroot = C:\ build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi
(基于Intel x64的目标,2017软件栈)-- sysroot = C:\ build\17.0\x64\sysroots\core2-64-nilrt-linu
- 在Properties窗口中导航到C/C++ General>>Paths and Symbols。转到Symbols选项卡,然后选择Add 。输入名称kNIOSLinux的符号,点击OK ,然后Apply。
- 在项目属性窗口中,选择C/C++ Build>>Settings,然后转到Tool Settings>>Cross GCC Compiler>>Miscellaneous部分。启用Position Independent Code选项,然后点击Apply。
- 转到C/C++ Build>>Settings>>Cross GCC Compiler,在Command文本框中添加一个空格然后输入-fvisibility = protected,以指示GCC将符号可见性设置为protected。点击 Apply。
- 转到Error Parsers选项卡。确保仅选择了GNU Assembler Error Parser, GNU gmake Error Parser 7.0, GNU Linker Error Parser选项,然后点击Apply 和OK关闭Properties窗口。
- 在 Project Explorer 选项卡中右键单击您的项目,然后选择 Build Project。 完成后将生成一个 .so 文件。