文章目录
- 前言
- 一、通过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软件选择工作目录,根据个人喜好去设置。

点击“Create Application Project”。

配置工程:“Projext name”根据个人修好设置;
”OS Plaform“,操作系统平台,因为我们要开发linux应用程序,选择”linux“;
“Process Type”根据开发板的内核选择;
"language"开发语言按实际选择。

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

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

2、将该工程的 elf 文件运行在我们搭建的Linux上
开发板的使用根文件系统默认帮我们搭建了FTP的服务器,我们可以直接通过FTP上传进开发板的根文件系统。
首先连接开发板,连接开发板的USB的调试窗口,通过MobaXterm软件,选择适合开发板的参数配置进入、登录,就可以进入开发板的根文件系统。

通过“ifconfig”查看开发板的IP地址,再通过FTP将elf文件拷贝进开发板的home/root目录下。可以看我以前关于虚拟机下Ubuntu和Window下的文件互传和本地共享的文章。
注意:在MobaXterm软件中,刚开始复制进来的文件并不能像Ununtu系统下按TAB下自动补全,原因是该文件并没有可执行权限。需要我们给它可执行权限,就可以通过TAB补全。
进入到目标文件下,后执行一下命令
chmod a+x 文件全名最后通过"./"命令执行该elf文件
3、SDK调试
点击SDK软件的左下方的图中黑体部分

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

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

小总结
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-app.c文件就是应用程序的源文件;MAkeFile就是这个程序的makefile文件使用vi修改linux.apps.c文件修改为下图

在petalinux根目录下编译文件,使用petalinux-build 命令编译
petalinux-build后接多个参数
//后接linux的app用户程序名
-c linxu-app
//表示要对该工程执行什么步骤
//do_compile表示执行编译步骤
-x do_compile
petalinus-create -c linux-apps -x do_compile编译结果

编译完成后就可以得到可执行文件,使用下面命令进入含可执行文件的文件夹
cd build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/linux-app/1.0-r0使用ls命令:

上图中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 -rvNFS系统就搭建成功了
把可执行文件拷贝到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 c2、编写源代码
3、编译应用程序工程
petalinux-build -c linux-apps -x do_compile4、得到可执行文件
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、运行可执行文件
可以参考上面的两种方法
















