第4章 开发板的第1个APP实验
详细的手把手教学视频请看
https://www.bilibili.com/video/BV1zV411U7H9?p=6
交叉编译运行第一个APP。
4.1 获取程序
Git仓库里含有本教程的所有源码,前面已经在Windwos下载了Git仓库,为了方便编译,也可以在Ubuntu中再次下载它。
在Ubuntu终端上执行如下命令。
git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git
代码获取示意图如图 4.1所示。

使用GIT下载所有源码后,本节源码位于如下目录:
01_all_series_quickstart\
04_嵌入式Linux应用开发基础知识\source\01_hello
注意:如果已经使用GTI下载过源码,就不需要重复下载了,否则会有如图 4.2提示:

hello.c的源码如下:
01 #include <stdio.h>
02
03 /* 执行命令: ./hello weidongshan
04 * argc = 2
05 * argv[0] = ./hello
06 * argv[1] = weidongshan
07 */
08
09 int main(int argc, char **argv)
10 {
11 if (argc >= 2)
12 printf("Hello, %s!\n", argv[1]);
13 else
14 printf("Hello, world!\n");
15 return 0;
16 }
4.2 编译程序
在Ubuntu中可以执行以下命令编译、执行:
gcc -o hello hello.c
./hello
Hello, world!
./hello weidongshan
Hello, weidongshan!
上述命令编译得到的可执行程序hello可以在Ubuntu中运行,但是如果把它放到ARM板子上去,它是无法执行的。因为它是使用gcc编译的,是给PC机编译的,里面的机器指令是x86的。
我们要想给ARM板编译出hello程序,需要使用交叉编译工具链。请参考《2.6.3配置交叉编译工具链》。
执行以下命令编译程序:
arm-buildroot-linux-gnueabihf-gcc -o hello hello.c
这样编译出来的hello程序才可以在ARM板子上运行。
4.3 上传程序到开发板并运行
先在Ubuntu上使用adb命令把hello程序上传到开发板,在Ubuntu上执行如下命令:
adb push hello /root
在开发板上执行以下命令,添加可执行权限, 并运行它:
[root@100ask:~]# chmod +x hello
[root@100ask:~]# ./hello