打印
[应用相关]

又来秀了,stm32f1+bcm43362,事件驱动构架

[复制链接]
7570|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Simon21ic|  楼主 | 2015-3-30 00:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前想外包的东西,正好最近有时间,就和兼职人员一起搞定了,自动亲自动手做了,才知道也没什么难的:

vsfshell 0.1 beta by SimonQian
>>>bcm.init
Initialize BCM wifi module.
Succeed.
F1SIG = 0x1591A962
MAC(6) = C8:93:46:70:04:CB
>>>bcm.scan
0: 8C:BE:BE:43:1D:9F Xiaomi_AA
1: 10:6F:3F:29:43:30 dd-wrt
2: EC:88:8F:91:78:CA REBBY-PC_Network
3: 94:0C:6D:D1:77:94 404_Network_Unavailable
4: 1C:FA:68:82:51:10 waterfront
5: C8:3A:35:09:12:28 Tenda_091228
6: A0:EC:80:69:0D:B7 OpenWrt
>>>bcm.ver
wl0: Nov  7 2014 16:03:45 version 5.90.230.12 FWID 01-4a009544

>>>bcm.join dd-wrt
dd-wrt connected
>>>bcm.sniffer
eth_packet(0):
FF FF FF FF FF FF D0 22 BE 61 BF 96 00 06 00 01
AF 81 01 00 00 00 00 01 00 02 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
eth_packet(1):
FF FF FF FF FF FF D0 22 BE 61 BF 96 08 06 00 01
08 00 06 04 00 01 D0 22 BE 61 BF 96 C0 A8 01 6E
00 00 00 00 00 00 C0 A8 01 01 00 00 00 00 00 00
10 6F 3F 29 43 30 77 6C 30 00 00 00 00 00 00 00
eth_packet(2):
FF FF FF FF FF FF D0 22 BE 61 BF 96 08 00 45 00
01 51 C0 D0 00 00 40 11 B8 CC 00 00 00 00 FF FF
FF FF 00 44 00 43 01 3D 38 CB 01 01 06 00 C6 64
B6 B2 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 D0 22 BE 61 BF 96 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 63 82 53 63 35 01 01 3D 07 01
D0 22 BE 61 BF 96 39 02 05 DC 3C 0C 64 68 63 70
63 64 2D 35 2E 35 2E 36 0C 18 61 6E 64 72 6F 69
64 2D 39 30 32 37 35 30 65 35 36 36 65 30 61 31
38 37 37 0A 01 21 03 06 0F 1A 1C 33 3A 3B FF 00
00 00 07 00 0C 43 00 00 00 00 07 06 43 4E 20 01
0D 10 DD A7 00 43 00 00 00 00 07 06 43 4E 20 01

BCM43362的芯片没任何资料,不过可以去broadcom注册一下,下载他们的WICED
他们没有提供STM32F1的支持,而且,那个开发环境。。。。基本没法用
不过有代码就能移植,而且,WICED里的很多代码都可以优化
沙发
wxlhonker| | 2015-3-30 09:13 | 只看该作者
不明觉厉啊,能否多放点信息?用F1和这片子的成本、功耗能到多少?

使用特权

评论回复
板凳
SLHSu37| | 2015-3-30 09:38 | 只看该作者
不明觉厉

使用特权

评论回复
地板
zh113214| | 2015-3-30 10:49 | 只看该作者
路过~

使用特权

评论回复
5
周董| | 2015-3-30 11:04 | 只看该作者
厉害啊

使用特权

评论回复
6
Simon21ic|  楼主 | 2015-3-30 13:08 | 只看该作者
wxlhonker 发表于 2015-3-30 09:13
不明觉厉啊,能否多放点信息?用F1和这片子的成本、功耗能到多少?

底层驱动12K,其他做全的话,估计15K。tcpip的话,如果用类似lwip规模的,大概10几K。总体32K的芯片就够了。如果做简化版本的话,16K也可能可以,不过RAM至少需要4K。

使用特权

评论回复
7
lovecat2015| | 2015-3-30 16:12 | 只看该作者
楼主,做这种东西主要用在什么上面呢?

使用特权

评论回复
8
Vitality1| | 2015-3-30 19:43 | 只看该作者

楼主,做这种东西主要用在什么上面呢?

使用特权

评论回复
9
mmuuss586| | 2015-3-30 20:12 | 只看该作者

呵呵,强啊;

使用特权

评论回复
10
Simon21ic|  楼主 | 2015-3-30 20:43 | 只看该作者

之前连以太网都没弄过,赶鸭子上架,真心不强。

使用特权

评论回复
11
DIYfashaoyou| | 2015-3-30 23:20 | 只看该作者
:lol为什么不直接上模块啊,简单方便快捷

使用特权

评论回复
12
Simon21ic|  楼主 | 2015-3-31 11:03 | 只看该作者
DIYfashaoyou 发表于 2015-3-30 23:20
为什么不直接上模块啊,简单方便快捷

技术能够搞定的情况下,达到更高的效率,更低的成本,硬件确实用模块,不过不是简单赚串口的那种

使用特权

评论回复
13
小班儿| | 2015-3-31 13:28 | 只看该作者
路过…………

使用特权

评论回复
14
Simon21ic|  楼主 | 2015-4-1 01:52 | 只看该作者
本帖最后由 Simon21ic 于 2015-4-1 01:55 编辑

TCPIP中的ARP,IP,UDP也搞定了,socket方式,目前占用15K flash,估计如果完整的协议栈搞定后,flash占用在25KB+。同样芯片,用lwip的话,代码占用在40KB左右,而且是callback方式。

上一些代码吧:
vsfshell_printf(output_pt, "UDP test" VSFSHELL_LINEEND);
        
        socket = vsfip_socket(AF_INET, IPPROTO_UDP);
        if (NULL == socket)
        {
                vsfshell_printf(output_pt, "Fail to create socket." VSFSHELL_LINEEND);
                goto handler_thread_end;
        }
        
        dest.sin_addr.size = 4;
        dest.sin_addr.addr.s_addr = SYS_TO_BE_U32(0xC0A80169);        // 192.168.1.105
        dest.sin_port = 10000;
        
        buffer = vsfip_buffer_get(64 + strlen(outmsg) + 1);
        if (NULL == buffer)
        {
                vsfshell_printf(output_pt, "not enough resources." VSFSHELL_LINEEND);
                goto handler_thread_end;
        }
        buffer->start += 64;
        buffer->len -= 64;
        bufptr = vsfip_buffer_ptr(buffer);
        strcpy((char *)bufptr, outmsg);
        local_pt.state = 0;
        vsfsm_pt_entry(pt);
        err = vsfip_udp_send(&local_pt, evt, socket, &dest, buffer);
        if (err < 0)
        {
                vsfshell_printf(output_pt, "Fail to send UDP" VSFSHELL_LINEEND);
                goto handler_thread_end;
        }
        if (err != 0) return err;
        vsfip_buffer_release(buffer);
        
        vsfshell_printf(output_pt, "UDP tested OK" VSFSHELL_LINEEND);

简单的UDP测试代码,建立socket,分配缓冲,设置远程的地址和端口,发送。。。。

使用特权

评论回复
15
Rain_King| | 2015-4-1 08:49 | 只看该作者
这相当于啥都木有说啊.....

使用特权

评论回复
16
Simon21ic|  楼主 | 2015-4-1 11:07 | 只看该作者
Rain_King 发表于 2015-4-1 08:49
这相当于啥都木有说啊.....

WICED是公开的,可以下载到的,去broadcom注册一下就可以了

使用特权

评论回复
17
hf5542| | 2015-7-22 09:35 | 只看该作者
厉害啊!现在还提供外包不,或者介绍做这个的技术。我们穿戴也要用到这个WIFI!

使用特权

评论回复
18
Simon21ic|  楼主 | 2015-7-22 12:05 | 只看该作者
hf5542 发表于 2015-7-22 09:35
厉害啊!现在还提供外包不,或者介绍做这个的技术。我们穿戴也要用到这个WIFI! ...

你们也用BCM43362?可以参考WICED,这个是免费开源的

使用特权

评论回复
19
Albert_21| | 2016-1-27 16:49 | 只看该作者
我这边有一个基于bcm43362的项目,软件外包,有兴趣的加我QQ: 1710917256,备注:bcm43362

使用特权

评论回复
20
Albert_21| | 2016-1-27 16:50 | 只看该作者
我这边有一个基于bcm43362的项目,软件外包,有兴趣的加我QQ:1710917256,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝