Gamepad & WSN

Tag Archives: ARM

分享好不容易找到的STM32程序例子源代码

Author:Gamepader    IN:ARM_Linux, 手柄    Tags: , , ,     评论: 0    超过963人围观

作为USB HID类设备开发者,我找了好几天的STM32 USB程序Keil例子工程,终于功夫不负有心人,让我给找到了!

  • 这些代码在ST的官方开发文件stm32f10x_stdperiph_lib_um.chm中是没有提供,或者语焉不详的。

不敢独享,特地拿出来共享一下:

上面的链接有STM32用作USB HID设备(STM32 usb hid demo源代码)和USB MassStorage设备的例子源代码。
原创文章,转载请注明转载自//blog.gamepader.com/archives/2012/12/share-stm32-program-hard-to-find-examples-of-source-code.html.
此次给出的示例程序源代码包括了下表中的这些工程。

 

  • 对应的USB HID demonstrator文档(PDF)在此:
  • //www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/CD00196932.pdf

拿走的请不要吝惜您的评论,O(∩_∩)O谢谢!

 

12-25
2012

设置ARM网络环境带来的新问题

Author:Gamepader    IN:ARM_Linux, Network, 碎碎念    Tags: , , , ,     评论: 0    超过103人围观

上一篇文章中,我详细记录了使用有线网络通过无线路由器共享给ARM开发板和其他设备,并且配置虚拟机网络、使ARM开发板、电脑主机、虚拟机能够互相通信、并且都能够自由访问网络的操作流程,问题是解决了,但是带来了一个不致命的新问题:在linux系统ping网内主机时,可能会出现 (DUP!)回复:
在ARM开发板上ping虚拟机:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[[email protected] /]# ping 192.168.1.98
PING 192.168.1.98 (192.168.1.98): 56 data bytes
64 bytes from 192.168.1.98: seq=0 ttl=64 time=5.697 ms
64 bytes from 192.168.1.98: seq=0 ttl=64 time=6.436 ms (DUP!)
64 bytes from 192.168.1.98: seq=1 ttl=64 time=2.854 ms
64 bytes from 192.168.1.98: seq=1 ttl=64 time=3.349 ms (DUP!)
64 bytes from 192.168.1.98: seq=2 ttl=64 time=2.751 ms
64 bytes from 192.168.1.98: seq=2 ttl=64 time=3.338 ms (DUP!)
64 bytes from 192.168.1.98: seq=3 ttl=64 time=2.844 ms
64 bytes from 192.168.1.98: seq=3 ttl=64 time=3.433 ms (DUP!)
^C
--- 192.168.1.98 ping statistics ---
4 packets transmitted, 4 packets received, 4 duplicates, 0% packet loss
round-trip min/avg/max = 2.751/3.837/6.436 ms

在虚拟机上ping ARM开发板:

1
2
3
4
5
6
7
8
9
10
[email protected]:~$ ping 192.168.1.99
PING 192.168.1.99 (192.168.1.99) 56(84) bytes of data.
64 bytes from 192.168.1.99: icmp_seq=1 ttl=64 time=2.61 ms
64 bytes from 192.168.1.99: icmp_seq=1 ttl=63 time=2.68 ms (DUP!)
64 bytes from 192.168.1.99: icmp_seq=2 ttl=64 time=2.04 ms
64 bytes from 192.168.1.99: icmp_seq=2 ttl=63 time=2.08 ms (DUP!)
^C
--- 192.168.1.99 ping statistics ---
2 packets transmitted, 2 received, +2 duplicates, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 2.048/2.356/2.681/0.299 ms

猜测可能的原因是笔记本的无线网卡绑定了多个IP地址(网关192.168.1.126和虚拟机192.168.1.98),造成通往内网某个IP的路径超过一条,因此收到了多个ICMP回复包。
此问题不影响使用,但是作为不折腾不舒服斯基,还是一定要折腾个明白的。
以上猜测结果结果等待实验验证中。。。


使用sudo route del 192.168.1.64/26删除ARM和虚拟机系统的路由表条目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
192.168.1.64/26[cci],问题依旧
[cc lang="bash"]
[[email protected] /]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.126   0.0.0.0         UG    0      0        0 eth0
[[email protected] /]# ping 192.168.1.98
PING 192.168.1.98 (192.168.1.98): 56 data bytes
64 bytes from 192.168.1.98: seq=0 ttl=63 time=4.677 ms
64 bytes from 192.168.1.98: seq=0 ttl=63 time=5.405 ms (DUP!)
64 bytes from 192.168.1.98: seq=1 ttl=63 time=5.274 ms
64 bytes from 192.168.1.98: seq=1 ttl=63 time=5.872 ms (DUP!)
^C
--- 192.168.1.98 ping statistics ---
2 packets transmitted, 2 packets received, 2 duplicates, 0% packet loss
round-trip min/avg/max = 4.677/5.307/5.872 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[email protected]:~$ route -n        
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.1.126   0.0.0.0         UG    100    0        0 eth0
[email protected]:~$ ping 192.168.1.99
PING 192.168.1.99 (192.168.1.99) 56(84) bytes of data.
64 bytes from 192.168.1.99: icmp_seq=1 ttl=64 time=2.69 ms
64 bytes from 192.168.1.99: icmp_seq=1 ttl=63 time=2.74 ms (DUP!)
64 bytes from 192.168.1.99: icmp_seq=2 ttl=64 time=2.21 ms
64 bytes from 192.168.1.99: icmp_seq=2 ttl=63 time=2.25 ms (DUP!)
^C
--- 192.168.1.99 ping statistics ---
2 packets transmitted, 2 received, +2 duplicates, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 2.218/2.479/2.749/0.252 ms


等待有时间继续验证…………

原创文章,欢迎转载。
转载请注明来自://www.gamepader.com/archives/2012/07/new-problem-in-arm-network.html

07-29
2012

记录我的ARM网络环境

Author:Gamepader    IN:ARM_Linux, Network    Tags: , , , ,     评论: 1    超过225人围观

Brief:本文介绍了如何使用有线网络通过无线路由器共享给ARM开发板和其他设备,并且配置虚拟机网络,使ARM开发板、电脑主机、虚拟机能够互相通信,并且都能够自由访问网络的详细操作流程。

首先介绍一下我的网络环境:

1.笔记本电脑使用锐捷认证上网,没有限制多网卡,但是我的TP-Link WR740n(大陆阉割版,V5/V6)升级到最新版本4.19.49 Build 111031 Rel.57696n,有是有了802.1x认证方式,但是就是不能通过锐捷认证。

2.笔记本通过无线网卡共享给路由器上网,路由器充当DHCP服务器和无线AP,网关使用笔记本的无线网卡,因为我的XP系统不能完美支持网卡充当AP,许多设备不能正常连接,像Android设备.

3.ARM开发板的DM9000网卡连接在路由器上

我的网络结构图

    现在需要在XP下运行一个ubuntu10.04LTS的虚拟机,要求要笔记本、ARM、虚拟机能够互相访问。

其实这个问题我在做毕业设计的时候就已经解决了的,当时忘记记录了,现在又纠结了两天,终于再次弄明白了,现记录如下:

  • Step1:有线网卡能够正常上网,设置为共享,如不能启用共享,检查XP的防火墙是否已启动。
  • Step2:无线网卡设置为手动IP:
1
2
3
4
5
6
Ethernet adapter 无线网络连接:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.126
Subnet Mask . . . . . . . . . . . : 255.255.255.192
Default Gateway . . . . . . . . . : 192.168.1.126
  • Step3:无线路由器LAN设置到无线网卡划分出的网络中:
1
2
IP: 192.168.1.100  (与无线网卡在同一个网络192.168.1.64)
MASK: 255.255.255.192 (与无线网卡一致)

无线路由器DHCP服务器设置为开启,配置如下:

1
2
3
4
5
6
7
8
DHCP服务器: 启用
地址池开始地址:192.168.1.101 (注意不要和已有的地址冲突就行)
地址池结束地址:192.168.1.125 (注意不要和已有的地址冲突就行)
地址租期: 2880 分钟 (这个可以按实际需要设置)
网关: 192.168.1.126 (填无线网卡的IP地址)
缺省域名: (可不填)
主DNS服务器:8.8.8.8
备用DNS服务器:8.8.4.4

在电脑上连接无线路由器的SSID后,可以在电脑上ping通路由器:

1
2
3
4
5
6
7
8
9
10
11
12
13
C:\>ping 192.168.1.100

Pinging 192.168.1.100 with 32 bytes of data:

Reply from 192.168.1.100: bytes=32 time=7ms TTL=64
Reply from 192.168.1.100: bytes=32 time=2ms TTL=64
Reply from 192.168.1.100: bytes=32 time=2ms TTL=64
Reply from 192.168.1.100: bytes=32 time=2ms TTL=64

Ping statistics for 192.168.1.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 7ms, Average = 3ms

===========此处已经完成了使用路由器共享计算机网络的过程===========

  • Step4:ARM开发板设置网络到划分出的网段中:
1
2
3
4
ifconfig eth0 down
ifconfig eth0 hw ether 01:23:45:67:89:ab
ifconfig eth0 192.168.1.99 netmask 255.255.255.192 up
route add default gw 192.168.1.126

开发板IP地址设置完成,此时应该可以从开发板上ping通无线路由器(或者从电脑上pingARM开发板):

1
2
3
4
5
6
7
8
9
> ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: seq=0 ttl=64 time=1.282 ms
64 bytes from 192.168.1.100: seq=1 ttl=64 time=0.976 ms
64 bytes from 192.168.1.100: seq=2 ttl=64 time=0.979 ms
^C
--- 192.168.1.100 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.976/1.079/1.282 ms
  • Step5:设置虚拟机采用桥接(Bridge)方式连入网络,打开虚拟网络编辑器,取消自动桥接里面的复选框,再在主机虚拟网络映射,选择VMnet0桥接到无线网卡,如下图:

手动桥接VMnet0到无线网卡

  • Step6:在虚拟机系统里面设置网络为手动IP,地址可以是无线网卡所划出的网络里面的任意一个空闲IP,最好不要设置在DHCP地址池内,以免冲突。

例如我的:

1
2
3
ifconfig eth0 down
ifconfig eth0 192.168.1.98 netmask 255.255.255.192 up
route add default gw 192.168.1.126

此时虚拟机已能正常上网,也能正常访问ARM等本地设备。

虚拟机已能正常上网

1
2
3
4
5
6
7
8
9
10
11
C:\>ping 192.168.1.98

Pinging 192.168.1.98 with 32 bytes of data:

Reply from 192.168.1.98: bytes=32 time=1ms TTL=64
Reply from 192.168.1.98: bytes=32 time Reply from 192.168.1.98: bytes=32 timeReply from 192.168.1.98: bytes=32 time

Ping statistics for 192.168.1.98:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms

原创文章,欢迎转载。
转载请注明来自//www.gamepader.com/archives/2012/07/record-of-my-arm-networks.html

07-29
2012
loading...