打印

VSF的W600支持

[复制链接]
1175|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

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

struct usrapp_t usrapp =
{
        .debug.uart_stream.index                                = DEBUG_UART_INDEX,
        .debug.uart_stream.mode                                        = VSFHAL_USART_STOPBITS_1 | VSFHAL_USART_PARITY_NONE,
        .debug.uart_stream.int_priority                        = 0xFF,
        .debug.uart_stream.baudrate                                = 115200,

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

        .debug.stream_tx.stream.op                                = &vsf_fifostream_op,
        .debug.stream_tx.mem.buffer.buffer                = (uint8_t *)&usrapp.debug.txbuff,
        .debug.stream_tx.mem.buffer.size                = sizeof(usrapp.debug.txbuff),
        .debug.stream_rx.stream.op                                = &vsf_fifostream_op,
        .debug.stream_rx.mem.buffer.buffer                = (uint8_t *)&usrapp.debug.rxbuff,
        .debug.stream_rx.mem.buffer.size                = sizeof(usrapp.debug.rxbuff),
};

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

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

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

void usrapp_initial_init(struct usrapp_t *app){}


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


使用特权

评论回复

相关帖子

沙发
goldenblood| | 2020-2-22 19:57 | 只看该作者
这日子没法过了....

使用特权

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

本版积分规则

90

主题

325

帖子

8

粉丝