iTOP-4412 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可
以使用 Linux-C 程序来测试硬件以及驱动。而且这些程序很容易移植到 Android、Qt/E 以及
最小文件系统上。
特别提醒:Linux-C 程序是跨平台的,只要按照下面介绍的方法去编译,就可以将 Linux-
C 的程序和 Android 系统一起运行,使用 Linux-C 的程序测试我们关注的内容。本质上,我们
可以这样理解,Android 只是一个大的文件而已,以下面第一个 helloworld 为例,Linux 内核上
运行着两个程序“helloworld”+“Android”。
Linux-C 的测试程序源码和可执行程序在网盘目录“iTOP4412 开发板资料汇总(不含光盘
内容)iTOP-4412 开发板系统源码及镜像(其他)小模块的测试程序”下。
8.1 测试程序的编译和运行
8.1.1 编译环境的设置
C 程序的应用程序在 Android 上运行,使用的编译器是 gcc4.4.1。编译器的安装方法参
考第五章。
如下图所示,修改环境变量。
![a325848d9fc4530cf4b148b125ab0413.png](https://i-blog.csdnimg.cn/blog_migrate/a9ed6a3fa49bbb06d0eadd573ac6d0da.jpeg)
修改完之后,更新一下环境变量,如下图
![e4fe4cbb423c0764c2b31e00a844d092.png](https://i-blog.csdnimg.cn/blog_migrate/90d04fe388d318e17f0ee77c1bac3f9b.jpeg)
如下图所示,输入“arm”,然后按“TAB”键,会显示后面需要用到的编译器“arm-
none-linux-gnueabi-gcc-4.4.1”。
![bf24a6bee79e5eca705f3b43da487c12.png](https://i-blog.csdnimg.cn/blog_migrate/1fb4873456866bb5cd9adf5cb098068f.jpeg)
8.1.2 编译 helloworld
程序 helloworld.c 的源码如下。
![4b743279c24c99f02c3550ceda33c7dc.png](https://i-blog.csdnimg.cn/blog_migrate/51e2859d81997f4aeb462e1ae481dd8e.jpeg)
编译 helloworld 程序,输入命令“arm-none-linux-gnueabi-gcc-4.4.1 -o helloworld
helloworld.c -static”,如下图所示。
![ee8300f086484b125f56cc82ae64dc47.png](https://i-blog.csdnimg.cn/blog_migrate/ca852436d27b2cfb389c00e5f654a28d.jpeg)
如下图,生成可执行文件 helloworld。
![01b7ccc8fa0c5d49bd2cc08db85cdd56.png](https://i-blog.csdnimg.cn/blog_migrate/d0632897976db84432137e13037009ac.jpeg)
8.1.3 上传 helloworld 到开发板
开发板运行出厂自带的 Android4.0.3 系统,连接串口控制台,启动开发板,Android 运
行之后接上 OTG 线。
将可执行文件 helloworld 拷贝到 fastboot 烧写目录中,如下图所示,这个目录是烧写
fastboot 工具所在的目录。fastboot 工具的使用方法参考 3.6 小节。
![0cf6b119ea34bd7afc26ce413a1d0a73.png](https://i-blog.csdnimg.cn/blog_migrate/a506f94262f0609572d8216ff0cfdd85.jpeg)
开发板的 Android 系统运行稳定后,将 OTG 接口和电脑的 USB 连接,打开
“USB_fastboot_toolplatform-tools”目录中的“cmd.exe”,如下图所示。
![311e3cd21c32665bfda18e0629109b4a.png](https://i-blog.csdnimg.cn/blog_migrate/5bf5fbc200e7b0d44e6495a2c7b87bf1.jpeg)
如下图所示,输入命令“adb push helloworld /data”,将程序上传到开发板的
“/data”目录中。
![8995f0bbabea370bc8e2e5402a5e951e.png](https://i-blog.csdnimg.cn/blog_migrate/07fd487c4cf51c28dc457b7e72b9e764.jpeg)
当然也可以通过手机助手、TF 卡或者 U 盘来上传可执行文件 helloworld。
8.1.4 修改程序权限和运行 helloworld
如下图所示,在超级终端中,输入“cd /data”进入"/data"目录,使用“chmod 777
helloworld”修改权限,最后输入命令“./helloworld”运行程序。超级终端中会打印出
“Hello world!”,表明程序运行成功。
![03e77b2a7fcf816415a5ac6345e7e28b.png](https://i-blog.csdnimg.cn/blog_migrate/deacbc3d4c25b411f009d910aef4ecbe.jpeg)
除了通过控制台修改权限和运行程序,还可以通过 adb 控制台修改权限和运行程序。如
下图所示,上传 helloworld 程序之后,使用命令“adb shell”打开 adb 命令行(更多 adb
命令参考 3.6.4 小节),使用“cd /data”进入 helloworld 程序上传目录“/data”,使用命
令“chmod 777 helloworld”修改权限,接着使用“./helloworld”运行 helloworld 可执行
程序。可以看到 adb 控制台打印“Hello World!”。
![06b2526f90bf337d58b642e73f4615b2.png](https://i-blog.csdnimg.cn/blog_migrate/0148999f7ff2b152fbd194f805bf6132.jpeg)
后面的测试可以使用串口控制台运行程序,也可以使用 adb 命令运行程序。