实现第一个应用程序:在IMX6ULL开发板上运行程序hello.c
#include <stdio.h>
/* 执行命令: ./hello weidongshan
* argc = 2
* argv[0] = ./hello
* argv[1] = weidongshan
*/
int main(int argc, char **argv)
{
if (argc >= 2)
printf("Hello, %s!\n", argv[1]);
else
printf("Hello, world!\n");
return 0;
}
一般的步骤:(1)将源码下载到ubuntu上
(2)在ubuntu中编译程序
(3)把编译好的程序上传到板子里面
前提:远程登陆ubuntu和开发板
使用mobaxterm远程登陆ubuntu和开发板
(1)登陆ubuntu
(2)远程登陆开发板
步骤一:将源码下载到ubuntu上
如果源码在windows里面,首先得将源码下载到ubuntu里面,之后从Ubuntu里面下载到板子里面。
windows——>ubuntu
建议使用Filezilla软件建立windows与Ubuntu之间的连接,传输源码。
步骤二:在ubuntu中编译程序
法一:错误的编译:
gcc -o hello1 hello.c
法二:正确的编译:
arm-buildroot-linux-gnueabihf-gcc -o hello2 hello.c
当我们把法一,法二传到板子上时,./hello1会报错,但是./hello2不会。
解析:我们在Ubuntu制作这个应用程序的时候,用的是gcc来编译,但是如果是要个arm板来制作应用程序时,我们应该用arm板的工具链——“arm-buildroot-linux-gnueabihf-”
补充:如何配置arm板的工具链
1.打开配置文件
vim ~/.bashrc
2.在行尾添加
export ARCH=arm export CROSS_COMPILE=arm-buildroot-linux-gnueabihfexport PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueab ihf_sdk-buildroot/bin
3.刷新
source ~/.bashrc
刷新完重启
4.验证
arm-buildroot-linux-gnueabihf-gcc -v
步骤三:把编译好的程序上传到板子里面
ubuntu——>板子
使用NFS将板子上某个目录挂载在ubuntu的含有源码的目录,这样就可以在板子上获得源码了
方法:在板子端上使用下面命令(我自己的电脑为例)
mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
解析:mount是命令;-t是选择类型;nfs是选择类型为nfs;-o是option;nolock,vers=3是选项;192.168.5.11:/home/book/nfs_rootfs是源码的目录(192.168.5.11是地址:使用ifconfig可以看到);/mnt是在板子上要放的目录。
传输成功后,就可以在板子上运行应用程序了。
注:在该文章中应为
./hello2