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