編譯elf1_cmd_net程序
(一)設(shè)置交叉編譯環(huán)境。
(二)查看elf1_cmd_net文件夾Makefile文件。查看當(dāng)前編譯規(guī)則,net_demo是編譯整個(gè)工程,clean是清除工程。
(三)輸入命令。
(四)編譯無(wú)錯(cuò)誤將生成elf1_cmd_net可執(zhí)行文件。
(五)將可執(zhí)行文件拷貝到開(kāi)發(fā)板中,例如/home/root 路徑下。
開(kāi)發(fā)板測(cè)試
如圖,直連電腦網(wǎng)口和ELF?1板子的eth0。
(一)開(kāi)發(fā)板做TCP客戶(hù)端,虛擬機(jī)做TCP服務(wù)端。
以開(kāi)發(fā)板IP:192.168.2.98,虛擬機(jī)IP:192.168.2.97 為例進(jìn)行以下測(cè)試。
注意:在測(cè)試之前要保證開(kāi)發(fā)板和虛擬機(jī)能夠互ping成功。
(1)在開(kāi)發(fā)板上運(yùn)行的應(yīng)用是arm架構(gòu)的,在虛擬機(jī)中運(yùn)行的應(yīng)用是x86架構(gòu)的。所以我們應(yīng)該編譯出x86架構(gòu)的應(yīng)用,讓?xiě)?yīng)用能夠在虛擬機(jī)中運(yùn)行。
?重新打開(kāi)一個(gè)終端,進(jìn)行編譯。
(2)在虛擬機(jī)執(zhí)行elf1_cmd_net應(yīng)用,建立監(jiān)聽(tīng)。
(3)通過(guò)調(diào)試串口,在終端界面下進(jìn)入到/home/root 路徑,執(zhí)行elf1_cmd_net應(yīng)用,開(kāi)發(fā)板與虛擬機(jī)建立鏈接。
(4)開(kāi)發(fā)板與虛擬機(jī)建立鏈接后。當(dāng)開(kāi)發(fā)板主動(dòng)發(fā)送數(shù)據(jù)后,虛擬機(jī)將接收到的數(shù)據(jù)再次轉(zhuǎn)發(fā)到開(kāi)發(fā)板。效果如下:
(二)開(kāi)發(fā)板做TCP服務(wù)端,虛擬機(jī)做TCP客戶(hù)端。
(1)通過(guò)調(diào)試串口,在終端界面下進(jìn)入到/home/root 路徑,執(zhí)行elf1_cmd_net應(yīng)用。建立監(jiān)聽(tīng)。
(2)在虛擬機(jī)執(zhí)行elf1_cmd_net應(yīng)用,開(kāi)發(fā)板與虛擬機(jī)建立鏈接。
(3)開(kāi)發(fā)板與虛擬機(jī)建立鏈接后。當(dāng)虛擬機(jī)主動(dòng)發(fā)送數(shù)據(jù)?后,開(kāi)發(fā)板會(huì)將接收到的數(shù)據(jù)再次轉(zhuǎn)發(fā)到虛擬機(jī)。效果如下:
(三)開(kāi)發(fā)板做UDP客戶(hù)端,虛擬機(jī)做UDP服務(wù)端。
說(shuō)明:因?yàn)閁DP協(xié)議是無(wú)連接的,所以UDP客戶(hù)端應(yīng)先發(fā)數(shù)據(jù),讓UDP服務(wù)端綁定UDP客戶(hù)端的IP和端口,方能互相通信。到實(shí)際測(cè)試時(shí),方法是UDP客戶(hù)端先主動(dòng)發(fā)送數(shù)據(jù),UDP服務(wù)端獲取UDP客戶(hù)端的IP和端口。
(1)在虛擬機(jī)執(zhí)行elf1_cmd_net應(yīng)用。
(2)通過(guò)調(diào)試串口,在終端界面下進(jìn)入到/home/root 路徑,執(zhí)行elf1_cmd_net應(yīng)用,主動(dòng)發(fā)送數(shù)據(jù)。
(3)當(dāng)開(kāi)發(fā)板發(fā)送數(shù)據(jù)后,虛擬機(jī)會(huì)將接收到的數(shù)據(jù)再次轉(zhuǎn)發(fā)到開(kāi)發(fā)板。效果如下:
(四)開(kāi)發(fā)板做UDP服務(wù)端,虛擬機(jī)做UDP客戶(hù)端。
(1)通過(guò)調(diào)試串口,在終端界面下進(jìn)入到/home/root 路徑,執(zhí)行elf1_cmd_net應(yīng)用,
(2)在虛擬機(jī)執(zhí)行elf1_cmd_net應(yīng)用,主動(dòng)發(fā)送數(shù)據(jù)。
(3)當(dāng)虛擬機(jī)發(fā)送數(shù)據(jù)后,開(kāi)發(fā)板會(huì)將接收到的數(shù)據(jù)再次轉(zhuǎn)發(fā)到虛擬機(jī)。效果如下: