在Android平台下的基于Linux-C 的测试程序

时间:2023-01-06 04:43:03

iTOP-4412 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可以 使用Linux-C 程序来测试硬件以及驱动。而且这些程序很容易移植到Android、Qt/E 以及最小文件系统上。

1. 编译环境的设置

本质上其实可以理解为,Android 只是一个大的文件而已,在Linux 内核上运行着两个程序“helloworld”+“Android”。 C 程序的应用程序在Android 上运行,使用的编译器是gcc4.4.1。

在上面的开发环境全部搭建好以后,首先修改环境变量,如下图

在Android平台下的基于Linux-C 的测试程序

修改完之后,更新一下环境变量,如下图。

在Android平台下的基于Linux-C 的测试程序

输入“arm”,然后按“TAB”键,会显示后面需要用到的编译器“arm-none-linux-gnueabi-gcc-4.4.1”,如下图所示

在Android平台下的基于Linux-C 的测试程序

2.编译helloworld

程序helloworld.c 的源码如下:

在Android平台下的基于Linux-C 的测试程序

编译hellworld 程序,输入命令“arm-none-linux-gnueabi-gcc-4.4.1 -o helloworld  hello.c  -static”,并且生成了可执行文件helloworld,如下图所示。

在Android平台下的基于Linux-C 的测试程序

3.上传helloworld 到开发板

将可执行文件helloworld 拷贝到fastboot 烧写目录中,如下图所示,这个目录是烧写fastboot 工具所在的目录。

在Android平台下的基于Linux-C 的测试程序

开发板的Android 系统运行稳定后,将OTG 接口和电脑的USB 连接,打开“USB_fastboot_tool\platform-tools”目录中的“cmd.exe”,如下图所示。

在Android平台下的基于Linux-C 的测试程序

如下图所示,输入命令“adb  push  helloworld  /data”,将程序上传到开发板的“/data”目录中。

在Android平台下的基于Linux-C 的测试程序

4.修改程序权限和运行helloworld

由于我的用的笔记本没有串口,而开发板必需要通过USB转串口的转接头才能正常连接到笔记本,所以这里我只能采用登陆开发板的shell来直接对开发版的安卓文件系统进行操作。

adb 全称是Android Debug Bridge,是android sdk 里的一个工具。它可以用来安装/卸载安卓的应用,上传/下载文件等。当然,如果要用ADB 命令和开发板交互,那么开发板一定要在文件系统模式,也就是开发板必须运行安卓操作系统,并且安卓文件系统必须完全启动。登录开发板Android 设备的shell,如下图所示。

在Android平台下的基于Linux-C 的测试程序

登录后,很多基本命令都是和Linux 的命令类似,在Windows命令行中,输入命令,例如:ls,cd 等。如下图所示

在Android平台下的基于Linux-C 的测试程序

我们可以看到刚才上传的helloworld在/data这个文件夹里。然后修改文件“helloworld”的权限,如下图

在Android平台下的基于Linux-C 的测试程序

运行“helloworld”程序。在Windows 命令行中,输入命令   ./helloworld

在Android平台下的基于Linux-C 的测试程序

可以看到刚才编译的可执行文件在这里的运行结果。

5.退出安卓shell

在Windows 命令行中,输入命令exit,来执行退出安卓shell 的命令,如下图

在Android平台下的基于Linux-C 的测试程序