之前学linux时做过一个小例程,测试PX2开发板上的tcp通信,现发到论坛里和大家分享一下,
主要是实现板与PC机的一个简单的通信测试,首先,配上两个程序(程序中没注释,不过具体函数的功能想了解也可以百度下),一个是tcp中负责接收的(tcp_ser.c),一个负责发送数据的(tcp_cli.c),如果在linux下编译,再分别开启两个终端执行,会是如下效果:
由于PC是x86内核的,而PX2板是arm内核的,故我们要在板上运行就得通过别的方式编译下,编译过程如下:
1.先在根目录先,执行sourcebuild/envsetup.sh,使得我们可以在“当前”目录下能执行mm这个命令
2.然后楼主是在/kernel/drivers/目录下建了两个目录,分别为/tcp_ser和tcp_cli,将相应的C程序放进去,
在tcp_cli新建一个Android.mk文件(注意大小写),然后写入如下内容,
然后在tcp_ser也执行同样的操作,修改的只需要是把tcp_cli.c改为tcp_ser.c,和把生成测试文件的名字改一下,然后在两个目录下分别执行一次mm就会生成测试文件
然后在/sdk/out/target/product/rkpx2/system/bin这个目录下找到测试文件,复制出来,用adb工具push进板中(注:这步得在window下执行),
3,进入文件所在目录,然后用chmod777 tcp×赋上权限,然后先查看我们自己网络的地址,然后在将板上的IP地址设置一下,使其处于同一个局域网,如:当未机子的IP为192.168.1.1时,板子也得设置为192.168.1.×××,板子的IP修改在设置那边可以改。然后用网线将PX2板与电脑连接起来,记住此时最好把电脑的防火墙关闭下,不然没法通信。
4.这时候测试我们便需要用到一个工具-网络助手,已经在附件中,如测试板子tcp的发送,则将网络助手设置为tcp_server,然后对应的端口号得看程序,我在程序中定义为3333.IP地址则是跟我们在板上设置的一样,然后在adbshell 进入板中,在cli文件所在的目录下执行:
./tcpcliapp 网络助手的ip地址
然后便会和之前在linux下操作的一样,而测试tcp的接收也是一样,执行./tcpserapp
然后把网络助手设置为tcp_client,端口,IP修改一下,点连接,在输入端输入的数据便可以送到板子上的服务器端了,由于楼主的电脑防火墙设置没办法取消,故这部分就不配图啦,不过之前在别人的电脑上试过,是可行的。有兴趣的伙伴可以试试,