VSF的W600支持

[复制链接]
 楼主| vsfopen 发表于 2018-9-9 20:17 | 显示全部楼层 |阅读模式
W600是最新发布的一个国产wifi芯片,价格便宜量又足,并且充分开放。所以乘着周末就玩了一下。

VSF的移植部分倒是非常简单,本身arch下已经有了cortexm的支持,基本直接可以跑起多任务。不过驱动移植倒是有些头疼,目前没有寄存器文档,不能调试,只有一个构架非常不合理的SDK,不过姑且还可以参考。

项目位于:https://gitee.com/versaloon/vsf_open
工程位于:vsf/example/vsfaio/proj/EWARM_W600

移植了GPIO驱动和串口驱动(虽然还有一些问题,不是非常确定串口的FIFO机制和中断机制):
https://gitee.com/versaloon/vsf_open/blob/master/vsf/hal/cpu/W600/gpio/W600_GPIO.c
https://gitee.com/versaloon/vsf_open/blob/master/vsf/hal/cpu/W600/usart/W600_USART.c

测试应用如下:
  1. #include "vsf.h"
  2. #include "usrapp.h"

  3. struct usrapp_t usrapp =
  4. {
  5.         .debug.uart_stream.index                                = DEBUG_UART_INDEX,
  6.         .debug.uart_stream.mode                                        = VSFHAL_USART_STOPBITS_1 | VSFHAL_USART_PARITY_NONE,
  7.         .debug.uart_stream.int_priority                        = 0xFF,
  8.         .debug.uart_stream.baudrate                                = 115200,

  9.         .debug.uart_stream.stream_tx                        = &usrapp.debug.stream_tx.stream,
  10.         .debug.uart_stream.stream_rx                        = &usrapp.debug.stream_rx.stream,

  11.         .debug.stream_tx.stream.op                                = &vsf_fifostream_op,
  12.         .debug.stream_tx.mem.buffer.buffer                = (uint8_t *)&usrapp.debug.txbuff,
  13.         .debug.stream_tx.mem.buffer.size                = sizeof(usrapp.debug.txbuff),
  14.         .debug.stream_rx.stream.op                                = &vsf_fifostream_op,
  15.         .debug.stream_rx.mem.buffer.buffer                = (uint8_t *)&usrapp.debug.rxbuff,
  16.         .debug.stream_rx.mem.buffer.size                = sizeof(usrapp.debug.rxbuff),
  17. };

  18. static void usrapp_heart_beat(void *p)
  19. {
  20.         vsfdbg_printf("app: heartbeat %d" VSFCFG_DEBUG_LINEEND, vsfhal_tickclk_get_ms());
  21. }

  22. void usrapp_srt_init(struct usrapp_t *app)
  23. {
  24.         VSFSTREAM_INIT(&app->debug.stream_rx);
  25.         VSFSTREAM_INIT(&app->debug.stream_tx);
  26.         vsf_usart_stream_init(&app->debug.uart_stream);

  27.         vsfdbg_init((struct vsf_stream_t *)&app->debug.stream_tx);
  28.         vsfdbg_printf("app: system started..." VSFCFG_DEBUG_LINEEND);
  29.         vsftimer_create_cb(1000, -1, usrapp_heart_beat, app);
  30. }

  31. void usrapp_initial_init(struct usrapp_t *app){}


也只是每隔1s,从串口打印一次数据。
w600_uart.png

goldenblood 发表于 2020-2-22 19:57 | 显示全部楼层
这日子没法过了....

90

主题

325

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部