A. 怎樣用Qt編寫arm與linuxTCP通信程序,arm做伺服器,linux做客戶端,獲取arm上AD轉換器的值
1、可採用Linux下的socket編程技術,跟QT或ARM的關聯性不大。
2、ARM開發板上運行多線程的伺服器端程序,主線程Listen,子線程採集AD轉換器的值。
3、LinuxPC上運行tcp的客戶端程序,connect到ARM開發板上的伺服器進行數據獲取和展現。
B. 如何知道在Linux中,PC和ARM之間TCP/IP通訊成功,求高手指點,不勝感激,高分懸賞!
@ubuntu:~$ gcc
gcc: no input files
ubuntu下有不懂的命令可以使用man命令來進行查詢,如
man gcc
gcc, g++ - GNU 工程的 C 和 C++ 編譯器 (egcs-1.1.2)
總覽 (SYNOPSIS)
gcc [ option | filename ]...
g++ [ option | filename ]...
gcc是linux下的編譯器,編譯某程序test.c時,執行命令
gcc test.c就可以在當前目錄下生成可執行文件,默認文件名為a.out,可以執行文件名
gcc test.c -o test 則生成名為test的可執行文件
然後可以使用ls命令來查看當前目錄下有哪些文件和目錄,類似於dos下的dir命令
當看到test文件時,表示編譯成功了,然後需要使用chmod +x test命令賦予可執行許可權
然後./test就可以執行了,./表示當前目錄
樓主使用linux得了解一下linux下的常用命令,玩過dos的話,可以對照某些命令
linux命令 dos命令
gcc cl.exe (cl是vc6的編譯器) linux下不認識擴展名,文件名區分大小寫
man help (dos下也可以使用help命令查詢部分程序的用法)
ls dir
chmod 無 (windows下的程序統一具有可執行許可權,無需手動賦予)
./test test (test表示編譯生成的示常式序,linux下不搜索當前目錄,dos下搜索當前目錄)
C. 求助,ARM Linux移植無線網卡的連不上自己的無線網路
新版的linux2.6.27.9已自帶zd1211b的驅動。此驅動在rat-linux-2.6.27.9/drivers/net/wireless/zd1211rw/中。
要讓此驅動生效,得修改內核配置。
選中
networking support-->wireless-->Generic IEEE 802.11 Networking Stack (mac80211)
選中
device drivers-->netword device support-->wirelss lan-->ZyDAS ZD1211/ZD1211B USB-wireless support
重新編譯內核。下載到板子中,重啟。加入無線網卡。出現
usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: reset full speed USB device using s3c2410-ohci and address 3
zd1211rw 1-1:1.0: phy1
表示無線網卡已被識別。使用cat /proc/net/wireless 命令,可以查看到系統中多了個wlan0網卡。此時,網卡還沒工作。使用命
令ifconfig wlan0 up則出現firmware:requesting zd1211,然後沒反應了,這是因為沒有firmware的原因,從這里
http://downloads.sourceforge.net/zd1211/zd1211-firmware-1.4.tar.bz2?modtime=1191498990&big_mirror=0
下載到zd1211 firmware 1.4後,根據firmware的說明,將其中的zd1211_*文件拷貝到根文件系統/lib/firmware/zd1211目錄中。這
里再執行ifconfig wlan0 up命令,則出現
firmware: requesting zd1211/zd1211b_ub
firmware: requesting zd1211/zd1211b_uphr
zd1211rw 1-1:1.0: firmware version 4725
zd1211rw 1-1:1.0: zd1211b chip 0ace:1215 v4810 full 00-02-72 AL2230_RF pa0 g--N
網卡硬體開始正常工作了。其中,0ace:1215是網卡的ID,可以用主機linux系統命令lsusb查看到。
但此時,網卡還沒被正確配置,還不能正常使用。
要正常使用無線網卡,還要正確配置。linux下的配置工具是wireless-tools,可以在這里下載到它的最新版。
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
下載後,將源代碼解壓。再修改其中的makefile文件,將其中的
CC = gcc
AR = ar
RANLIB = ranlib
改為
CC = arm-linux-gcc
AR = arm-linux-ar
RANLIB = arm-linux-ranlib
再執行make,編譯完成後,將生成的iwconfig,iwlist文件拷貝到rat-linux for mini2440的根文件系統中的/bin目錄下,將
libiw.so.29拷貝到/lib目錄下。
啟動mini2440開發板,進入linux命令行後,執行ifconfig wlan0 up,啟動無線網卡。再執行iwlist scanning,此命令可以搜索到
可用的無線網路接入點。我的無線接入點是一台無線路由器,ESSID是"rat-linux",執行此命令後就會下列輸出
wlan0 Scan completed :
Cell 01 - Address: 00:19:C6:53:B9:CE
ESSID:"rat-linux"
Mode:Master
Channel:2
Frequency:2.417 GHz (Channel 2)
Quality=11/100 Signal level:66/100
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=000000056306469f
Extra: Last beacon: 1065ms ago
其中可以看到我的無線接入點是需要密碼的。假設密碼是123456。使用如下的命令設置密碼。
iwconfig wlan0 key 123456
為了能接無線網,還要使用下面的命令設置ESSID
iwconfig wlan0 essid "rat-linux"
其它的參數可以都採用默認的,不用再設了。可以使用下面的命令加入無線網了。
iwconfig wlan0 ap auto
再執行iwconfig wlan0,就可以看到下面的信息。
wlan0 IEEE 802.11bg ESSID:"rat-linux"
Mode:Managed Frequency:2.417 GHz Access Point: 00:19:C6:53:B9:CE
Bit Rate=1 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:1234-56 Security mode:open
Power Management:off
Link Quality=100/100 Signal level:66/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
這就表示已接入無線網。
最後,為無線網卡指定IP地址。命令如下
ifconfig wlan0 192.168.1.30 netmask 255.255.255.0
我的開發主機和無線網卡處於同一網段,因此是可以相互PING通的。因此可以用從開發主機上PING無線網卡的IP地址的方法來確網
卡是否工作正常。從主機上執行ping 192.168.1.30,正常PING通。
至此,無線網卡安裝全部完成。
最後,為了方便配置,可以將上述的配置命令寫入linux腳本文件,以後,只要執行此腳本,即可完成上述步驟的配置。腳本文件內
容如下。
#! /bin/sh
ifconfig wlan0 up
iwconfig wlan0 key 123456
iwconfig wlan0 essid "rat-linux"
iwconfig wlan0 ap auto
ifconfig wlan0 192.168.1.30 netmask 255.255.255.0
D. linux下怎麼通過gdb和arm通過網線連接
trip後的文件大小隻有3.1MB,瘦身效果明顯!如果做廣告的話,絕對有說服力。
這個文件就是我們以後遠程調試時在主機上運行的交叉調試器了:在主機上執行,調試的卻是另一種體系結構的代碼。但是,光有主機的調試器還不夠。還需要在目標板上運行一個叫gdbserver的東東。
E. 現已通過無線網卡實現兩個ARM開發板相互ping通,開發板是linux系統,請問如何兩個開發板之間相互傳輸數據
如果只是傳文件就使用tftp命令,一個server 一個client,一般ARM板的文件系統使用busybox都會有tftpd 和tftp命令
特殊數據就使用socket編程
F. arm開發板上的linux如何通過網口和windows的網口通信,linux中的socket和windows下的socket能通用嗎
首先,第一socket是和平台無關的,他是一套規則,所有的平台都是通用的。第二socket肯定能用於arm開發板上linux和windows的通信。第三,雖然socket和平台無關,但是在linux下和windows下的編寫會有些差異,主要表現在包含的庫和頭文件上,還有windows對socket還自定義的一些東西,具體的去學習下socket,或者說windows網路編程,還有linux網路編程之類的知識吧
G. tiny6410 ARM上linux下的UDP Socket通信問題
上面代碼沒問題,用Linux虛擬機和window調試時,不能選用Bridge方式,改用NAT方式即可。
因為系統環境不同,這樣慢慢地很容易就找到問題出在哪裡,打個比方?觸發了裡面有什麼內容,它發送一條消息少年。這類問題(是打比方,精確到埠,語言不同。列印出來看,一步一步排查就行,不限於這一個問題)
另外的可能就是linux客戶端上的代碼運行機制問題。
首先要100%確定客戶端的消息到了伺服器端,代碼上的表現可能也不同,有沒有表示什麼時候發完,這一類;
然後這時從伺服器端代碼接受消息的入口也就是第一行開始單步調試,是否觸發了伺服器的監聽函數。也就是結束符,伺服器可能一直在等單條消息的結束
H. 關於怎樣在ARM嵌入Linux操作系統上面實現USB與PC通信
如果你的USB是標準的設備,比如HID,Mass storage的話,建議你看一看USB gadget驅動。如果你的不是標准設備,也不想使用Linux提供的現成的gadget驅動,就比較簡單了。首先看看系統在map_io的時候把USB的寄存器都map到了什麼地方,很多現成的板子其實都已經給你提供好了,你只要像在ucOS上一樣的操作就OK了。比如在S3c2410的板子上,寄存器定義一般都在regs-xxx.h裡面,你可以直接使用它:
volatile uint32 *pSrc=S3C2410_GPBCON;
I. 怎樣實現基於ARM linux系統下網口與PC傳輸
在arm上實現ftp,然後windows上設一個ftp伺服器(有這樣的軟體下,很多),arm上找到windows上設的伺服器,就能傳文件了。