欢迎光临散文网 会员登陆 & 注册

6、在windows系统里面安装Eclipse IDE和交叉编译器,编译生成Linux RT下的动态链接库

2021-06-15 16:53 作者:神电测控  | 我要投稿

1)      首先我们需要在Windows系统里面安装Java插件(建议使用Java SE 6或更高版本),用户可以点击这个链接进行下载安装:https://www.java.com/en/,如图9-88所示。

                                             

图9-88:在Windows系统里面安装Java插件

 2)      安装用于NI Linux Real-Time Eclipse Edition的C/C++开发工具(IDE),注意,这个工具是NI专门设计用于RT系统驱动编译的IDE开发环境。这个IDE跟LabVIEW版本有关系:

u 对于LabVIEW 2014至LabVIEW 2016,请安装适用于NI Linux Real-Time的C/C++开发版本:Eclipse Edition 2014-2016 。

u 对于LabVIEW 2017到LabVIEW 2020,请安装用于NI Linux Real-Time的C/C++开发版本:Eclipse Edition 2017-2018。

因为,后续我们用来开发树莓派的Linux RT版本是LabVIEW 2020社区版,所以这里选择的Eclipse版本是2017-2018,下载链接如下:https://www.ni.com/en-us/support/downloads/software-products/download.c-c---development-tools.html,在这个页面里面,选择2017版本,然后点击右下角的“下载”按钮即可,如图9-89所示。下载安装之后,重启一下电脑,在开始菜单的“National Instruments”文件夹里面就多出来了一个Eclipse开发环境IDE,如图9-90所示。

图9-89:在NI官网上下载用于开发NI Linux RT驱动的Eclipse开发环境
图9-90:安装成功后,在开始菜单里面找到Eclipse开发环境IDE

3)      启动用于NI Linux Real-Time的C/C++开发工具。在弹出来的向导页面里面,选择一个Workspace工作间,比如,这里我们选择默认的路径,如图9-91所示,然后点击“OK”按钮。

图9-91:启动Eclipse IDE的时候,选择一个Workspace工作空间

4)      进入Eclipse编辑页面之后,选择File>>New>>C Project,如图9-92所示,然后在弹出来的项目属性页面里面,选择Shared Library里面的空项目,右侧的编译器工具链选择Cross GCC Toolchain,如图9-93所示。因为我们只需编译生成动态链接库so文件即可。

图9-92:新建一个C项目工程


图9-93:在C项目属性配置页面里面填写项目名称并选择共享库和GCC交叉编译器

5)      点击上图9-93页面中的“Next”下一步之后,同时勾选Debug和Release,如图9-94所示,然后点击下一步继续。

图9-94:同时勾选Debug和Release配置

6)      下一步会提示用户需要配置Cross GCC交叉编译器的前缀和路径,用户可以参考下面的列表,根据自己使用的设备CPU种类和软件协议栈版本,选择合适的NI Linux Real-Time编译器路径和前缀。

前缀:
(基于ARM的目标,2013软件栈) arm-none-linux-gnueabi-

(基于ARM的目标,20142017软件栈) arm-nilrt-linux-gnueabi-

(基于Intel x64的目标,20142017软件栈) 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

        因为目前我们购买的工业级树莓派CM4里面的博通CPU采用的是ARM Cortex-A72架构,LabVIEW开发软件版本是2020,因此,这里我们只能选择兼容性最高的2017版本。如图9-95所示。最后点击“Finish”完成就可以创建一个基于ARM的C项目了,如图9-96所示。

图9-95:设置GCC编译器前缀和所需的编译器路径(树莓派里面的CPU是ARM架构)
图9-96:新建一个基于ARM架构的C编译器项目工程

7)      接下来,我们将提前准备好的Xillybus PCIe C语言源程序和头文件添加到上面创建的这个工程下。右击项目名称,选择里面“Import”导入选项,如图9-97所示;在弹出来的选择对话框里面选择“File System”文件系统,如图9-98所示;再把我们事先准备好的C文件和H文件添加进来,如图9-99所示;添加完成后的项目浏览器效果,如图9-100所示。

图9-97:右击项目名称选择“Import”导入
图9-98:选择导入的文件类型“File System”文件系统
图9-99:将我们在Windows系统上编写好的C文件和H头文件添加进来
图9-100:添加成功后的项目浏览器效果

8)      接下来,还需要对项目进行参数设置才能编译。右击项目名称,选择“Properties”属性,如图9-101所示。

图9-101:右击项目名称打开属性配置页面

9)      在弹出来的“Properties”属性对话框的左窗格中选中“C/C++ Build”,再从“Builder type”编译器类型下拉菜单中选择“Internal builder” 内部编译器以进行编译生成,如图9-102所示。

图9-102:选择内部编译器作为GCC编译器

10) 先点击左侧“C/C++ Build ”里面的“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

因为,树莓派的CPU属于ARM架构,所以这里我们需要在图9-103里面输入ARM目标相关的编译路径。

图9-103:选择ARM架构的编译器路径

11) 同样,左侧的“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

 

同理,因为树莓派的CPU属于ARM架构,所以这里我们需要选择ARM架构的链接器路径,如图9-104所示。

图9-104:选择ARM架构的链接器路径

12) 在“项目属性”窗口中导航到C/C++ General>>Paths and Symbols。转到“Symbols 符号选项卡,然后选择“Add”添加。输入符号名称kNIOSLinux,点击OK,然后点击下方的“Apply”应用生效一下,如图9-105.

图9-105:添加一个KNIOSLinux符号

13) 在“项目属性”窗口中,选择C/C++ Build>>Settings,然后转到Cross GCC Compiler>>Miscellaneous部分。勾选“Position Independent Code”位置独立代码,如图9-106所示。

图9-106:勾选-fPIC编译选项

14) 转到“Error Parsers”错误解析器选项卡。只要勾选里面的3项:GNU Assembler Error ParserGNU gmake Error Parser 7.0GNU Linker Error Parser,如图9-107所示。

图9-107:勾选3个错误解析器选项

15) 接下来,转到C/C++ Build>>Settings>>Cross GCC Compiler,在里面添加编译器命令-fvisibility = protected,以指示GCC将符号可见性设置为protected。点击 Apply”应用生效一下,然后按下“OK 关闭属性窗口,如图9-108所示。

图9-108:勾选3个错误解析器选项

16) 最后在菜单栏中选择Project>>Build Project(项目>>编译项目),将整个项目编译生成Linux系统下可以调用的动态链接so文件,如图9-109所示。编译完成后,打开项目根目录下的Debug文件夹,里面多出来一个后缀为.so的动态链接库文件,如图9-110所示,这个文件就是我们接下来用在LabVIEW Linux RT程序里面调用的库函数,类似Windows下的DLL文件。


图9-109:编译项目生成so动态链接文件
图9-110:编译出来的支持Linux RT系统的Xillybus PCIe动态链接库文件


6、在windows系统里面安装Eclipse IDE和交叉编译器,编译生成Linux RT下的动态链接库的评论 (共 条)

分享到微博请遵守国家法律