之前學linux時做過一個小例程,測試PX2開發(fā)板上的tcp通信,現(xiàn)發(fā)到論壇里和大家分享一下, 主要是實現(xiàn)板與PC機的一個簡單的通信測試,首先,配上兩個程序(程序中沒注釋,不過具體函數(shù)的功能想了解也可以百度下),一個是tcp中負責接收的(tcp_ser.c),一個負責發(fā)送數(shù)據(jù)的(tcp_cli.c),如果在linux下編譯,再分別開啟兩個終端執(zhí)行,會是如下效果: ![]() ![]() 由于PC是x86內(nèi)核的,而PX2板是arm內(nèi)核的,故我們要在板上運行就得通過別的方式編譯下,編譯過程如下: 1.先在根目錄先,執(zhí)行sourcebuild/envsetup.sh,使得我們可以在“當前”目錄下能執(zhí)行mm這個命令 2.然后樓主是在/kernel/drivers/目錄下建了兩個目錄,分別為/tcp_ser和tcp_cli,將相應(yīng)的C程序放進去, 在tcp_cli新建一個Android.mk文件(注意大小寫),然后寫入如下內(nèi)容, ![]() 然后在tcp_ser也執(zhí)行同樣的操作,修改的只需要是把tcp_cli.c改為tcp_ser.c,和把生成測試文件的名字改一下,然后在兩個目錄下分別執(zhí)行一次mm就會生成測試文件 然后在/sdk/out/target/product/rkpx2/system/bin這個目錄下找到測試文件,復(fù)制出來,用adb工具push進板中(注:這步得在window下執(zhí)行), 3,進入文件所在目錄,然后用chmod777 tcp×賦上權(quán)限,然后先查看我們自己網(wǎng)絡(luò)的地址,然后在將板上的IP地址設(shè)置一下,使其處于同一個局域網(wǎng),如:當未機子的IP為192.168.1.1時,板子也得設(shè)置為192.168.1.×××,板子的IP修改在設(shè)置那邊可以改。然后用網(wǎng)線將PX2板與電腦連接起來,記住此時最好把電腦的防火墻關(guān)閉下,不然沒法通信。 ![]() 4.這時候測試我們便需要用到一個工具-網(wǎng)絡(luò)助手,已經(jīng)在附件中,如測試板子tcp的發(fā)送,則將網(wǎng)絡(luò)助手設(shè)置為tcp_server,然后對應(yīng)的端口號得看程序,我在程序中定義為3333.IP地址則是跟我們在板上設(shè)置的一樣,然后在adbshell 進入板中,在cli文件所在的目錄下執(zhí)行: ./tcpcliapp 網(wǎng)絡(luò)助手的ip地址 ![]() 然后便會和之前在linux下操作的一樣,而測試tcp的接收也是一樣,執(zhí)行./tcpserapp 然后把網(wǎng)絡(luò)助手設(shè)置為tcp_client,端口,IP修改一下,點連接,在輸入端輸入的數(shù)據(jù)便可以送到板子上的服務(wù)器端了,由于樓主的電腦防火墻設(shè)置沒辦法取消,故這部分就不配圖啦,不過之前在別人的電腦上試過,是可行的。有興趣的伙伴可以試試, ![]() ![]() ![]() |