文章目录

  • 前言
  • 一、通过SDK开发应用程序
  • 1、创建工程
  • 2、将该工程的 elf 文件运行在我们搭建的Linux上
  • 3、SDK调试
  • 小总结
  • 1、打开SDK,创建Linux应用程序工程
  • 2、编写代码
  • 3、编译代码
  • 4、将可执行文件拷贝到开发板根文件系统去执行
  • 5、SDK调试
  • 二、通过petalinux开发应用程序
  • 1、在petalinux/工程下创建Linux应用程序工程,编写、编译代码得到可执行文件
  • 2、在开发板上运行可执行文件
  • 1、把可执行文件拷贝到开发板的根文件系统下,然后再去执行
  • 2、通过挂载NFS网络文件系统的方法
  • NFS服务开启
  • 把可执行文件拷贝到nfs为为你文件系统目录下
  • 在开发板这端通过mount命令去挂载Ubuntu系统的NFS文件系统
  • 小总结
  • 1、在petalinux/工程下创建Linux应用程序工程
  • 2、编写源代码
  • 3、编译应用程序工程
  • 4、得到可执行文件
  • 5、得到可执行文件之后运行就可以在开发板上运行了
  • 1、把可执行文件拷贝到开发板的根文件系统下,然后再去执行
  • 2、通过挂载NFS网络文件系统的方法
  • 三、vim开发应用程序
  • 1、编写代码
  • 2、编译代码
  • 3、运行可执行文件



前言

我们如果编写了一个应用程序,就需要我们在开发板上进行应用程序的测试。我将从三个点给大家介绍,这三个点是我向大家介绍的三种Linux开发程序的测试。


一、通过SDK开发应用程序

我并没有向大家介绍在Ubuntu下SDK软件的使用,因为我认为这些软件在Windows下使用更为方便,并且这个软件在Ubuntu和windows下。
在这里我将向大家介绍·windows下SDK软件的使用。

1、创建工程

首先是打开SDK软件选择工作目录,根据个人喜好去设置。

linux install ldap测试工具_ubuntu


点击“Create Application Project”。

linux install ldap测试工具_开发板_02


配置工程:“Projext name”根据个人修好设置;

”OS Plaform“,操作系统平台,因为我们要开发linux应用程序,选择”linux“;

“Process Type”根据开发板的内核选择;

"language"开发语言按实际选择。

linux install ldap测试工具_c语言_03


点击"Next",可以看到有两个模板,第一个是空应用工程模板,第二个是“Linux Hello World”工程模板。我们选择“Linux Hello World”工程模板,点击底部的“Finish”。

linux install ldap测试工具_网络_04


进入下图。其中src文件下的.c文件就是工程源文件。

linux install ldap测试工具_开发板_05

2、将该工程的 elf 文件运行在我们搭建的Linux上

开发板的使用根文件系统默认帮我们搭建了FTP的服务器,我们可以直接通过FTP上传进开发板的根文件系统。

首先连接开发板,连接开发板的USB的调试窗口,通过MobaXterm软件,选择适合开发板的参数配置进入、登录,就可以进入开发板的根文件系统。

linux install ldap测试工具_网络_06


通过“ifconfig”查看开发板的IP地址,再通过FTP将elf文件拷贝进开发板的home/root目录下。可以看我以前关于虚拟机下Ubuntu和Window下的文件互传和本地共享的文章。

注意:在MobaXterm软件中,刚开始复制进来的文件并不能像Ununtu系统下按TAB下自动补全,原因是该文件并没有可执行权限。需要我们给它可执行权限,就可以通过TAB补全。
进入到目标文件下,后执行一下命令

chmod a+x  文件全名

最后通过"./"命令执行该elf文件


3、SDK调试

点击SDK软件的左下方的图中黑体部分

linux install ldap测试工具_ubuntu_07


将显示出来的窗口中的Host改为连接的开发板的IP地址,点击“Test Contection”测试连接是否正常

linux install ldap测试工具_开发板_08


右点工程,点击“Debug As” ,点击图中的选项,这样就可以进入应用程序的调试。这里就不过多的介绍了。

linux install ldap测试工具_ubuntu_09


小总结

1、打开SDK,创建Linux应用程序工程
2、编写代码
3、编译代码
4、将可执行文件拷贝到开发板根文件系统去执行
5、SDK调试

二、通过petalinux开发应用程序

1、在petalinux/工程下创建Linux应用程序工程,编写、编译代码得到可执行文件

首先在Ubuntu下进入创建的petalinux工程的目录下

使用petalinux-create 命令

prtalinxu-create后接多个参数

//创建一个linux用户应用程序
-t apps

//指定创建的linux用户应用程序的名字
//该名字是有限制的:不能使用下划线,尽量不要使用大写字母
-n 名字

//设置工程模板,也就是设置是使用C语言和C++语言
--template c
--template c++

示例:
petalinux-create -t apps -n linux-apps -template c

打开创建的应用程序目录

linux install ldap测试工具_linux_10


其中的linux-app.c文件就是应用程序的源文件;MAkeFile就是这个程序的makefile文件使用vi修改linux.apps.c文件修改为下图

linux install ldap测试工具_c语言_11

在petalinux根目录下编译文件,使用petalinux-build 命令编译

petalinux-build后接多个参数

//后接linux的app用户程序名
-c linxu-app

//表示要对该工程执行什么步骤
//do_compile表示执行编译步骤
-x do_compile
petalinus-create -c linux-apps -x do_compile

编译结果

linux install ldap测试工具_c语言_12


编译完成后就可以得到可执行文件,使用下面命令进入含可执行文件的文件夹

cd build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/linux-app/1.0-r0

使用ls命令:

linux install ldap测试工具_c语言_13


上图中linux-app就是我们生成的可执行文件

2、在开发板上运行可执行文件

1、把可执行文件拷贝到开发板的根文件系统下,然后再去执行

首先就要拷贝可执行文件进开发板,由于开发板和Ununtu属于不同的主机,通过网络方式拷贝是最好的。

通过sck命令进行远程拷贝,将可执行文件从Ubuntu系统拷贝到开发板根文件系统

//用法:scp + 可执行文件按名 -root@+开发板IP地址:+开发板路径
scp linux-app -root@192.168.1.117:/home/root

之后跟着提示操作就可以了,就不过多介绍了

到开发板根文件系统下,使用./命令会发现后面的文件可以使用TAB补全,因为这个文件已经是具有可执行权限的文件了

注意:scp命令基于ssh协议,要求开发板运行ssh服务,这里就不过多赘述了

2、通过挂载NFS网络文件系统的方法

NFS服务开启

NFS网络文件系统:可以通过网络的方式进行远程挂载 mount

这样就可以在开发板访问UbuntuNFS根文件系统,需要我们把可执行文件拷贝到NFS文件系统目录下

在开发板这端通过mount命令将Ubuntu系统的NFS系统挂载到开发板根为我呢见系统目录下

这样的话,就可以在开发板这端去访问远程Ubuntu系统下的NFS文件系统,就可以直接在挂载目录下运行可执行文件

方法步骤:

安装并开启 Ubuntu 中的 NFS 服
务,使用如下命令安装 NFS 服务:

sudo apt-get install nfs-kernel-server

等待安装完成,安装完成以后在用户根目录下创建一个名为“linux”的文件夹,以后所有的东西都放到这个“server”文件夹里面,在“server”文件夹里面新建一个名为“nfs”的文件夹

mkdir -p ~/server/nfs

上图中创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系
统来访问 nfs 文件夹。
先配置 nfs。NFS 允许挂载的目录及权限在文件/etc/exports 中进行定义,使用如下命令
打开 nfs 配置文件/etc/exports:

sudo vi /etc/exports

打开/etc/exports 以后在后面添加如下所示内容:

/home/xxx/server/nfs *(rw,sync,no_root_squash)

/home/xxx/server/nfs是要共享的目录,*代表允许所有的网络段访问,rw 是可读写权
限,sync 是文件同步写入存储器,no_root_squash 是 nfs 客户端分享目录使用者的权限。如
果客户端使用的是 root 用户,那么对于该共享目录而言,该客户端就具有 root 权限

重启 NFS 服务,使用如下命令

sudo service nfs-kernel-server restart

此时可以运行以下命令来显示共享的目录

showmount -e

在 nfs 运行的过程中,修改了/etc/exports 配置文件,可以使用 exportfs 命令使改动生效,具体命令

sudo exportfs -rv

NFS系统就搭建成功了

把可执行文件拷贝到nfs为为你文件系统目录下

使用cp命令拷贝到nfs目录下就可以了,比如

cp -a linux-app ~/server/nfs


在开发板这端通过mount命令去挂载Ubuntu系统的NFS文件系统

在挂载之前先要知道 Ubuntu主机的 IP 地址,使用 ifconfig 命令或“ip a s”命令查询到笔者Ubuntu 主机的 IP 地址为 192.168.1.167。在连接到领发板的串口终端执行如下命令进行挂载

其中 192.168.1.167 为笔者的 Ubuntu 主机 IP 地址,/mnt 为挂载到开发板的目录。
在串口终端中输入”ls /mnt”可以看到 linux-app 文件,输入“/mnt/linux-app”会执行该文件

mount -t nfs -o nolock 192.168.2.172:/home/xxx/server/nfs /mnt

小总结

1、在petalinux/工程下创建Linux应用程序工程

petatlinux-create -t apps -n linux-app --template c

2、编写源代码

3、编译应用程序工程

petalinux-build -c linux-apps -x do_compile

4、得到可执行文件

build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/linux-app/1.0-r0
//最后两个文件夹名和你的用户应用程序有关

5、得到可执行文件之后运行就可以在开发板上运行了

1、把可执行文件拷贝到开发板的根文件系统下,然后再去执行

通过sck命令进行远程拷贝,将可执行文件从Ubuntu系统拷贝到开发板根文件系统

2、通过挂载NFS网络文件系统的方法

三、vim开发应用程序

1、编写代码

使用touch命令创建.c文件,使用后vi编写代码,这里就不过多介绍了

2、编译代码

使用交叉编译工具
使用petalinux前,我们都会初始化工作环境,会将交叉编译工具的路径导出到pass环境变量中去

使用下面命令

//gcc是用来编译c代码的
arm-linux-geueabihf-gcc + 源文件

//上面的代码是默认输出的文件名,我们可以自己设置
arm-linux-geueabihf-gcc -o + 输出文件名 + 源文件

3、运行可执行文件

可以参考上面的两种方法