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上设的服务器,就能传文件了。