Microchip® Advanced Software Framework

common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c File Reference

Serial Bridge.

Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.

#include <asf.h>
#include "common/include/nm_common.h"
#include "bus_wrapper/include/nm_bus_wrapper.h"
#include "driver/source/nmbus.h"
#include "driver/include/m2m_wifi.h"
#include "usart_stream.h"
#include <string.h>

Data Structures

struct  uart_cmd_hdr
 
struct  usart_frame
 

Macros

#define HANDLER_SIZE   sizeof(usart_handler) / sizeof(struct usart_frame)
 
#define MIN(x, y)   (x > y) ? y : x
 

Enumerations

enum  cmd_err_code {
  CMD_ERR_NO_ERROR = 0,
  CMD_ERR_INTERNAL_ERROR,
  CMD_ERR_INVALID_FRAME,
  CMD_ERR_NO_ERROR = 0,
  CMD_ERR_INTERNAL_ERROR,
  CMD_ERR_INVALID_FRAME,
  CMD_ERR_NO_ERROR = 0,
  CMD_ERR_INTERNAL_ERROR,
  CMD_ERR_INVALID_FRAME
}
 

Functions

static void buffer_to_cmd_hdr (uint8_t *buffer, struct uart_cmd_hdr *cmd_hdr)
 
static uint8_t checksum_check (uint8_t *buffer, uint8_t size)
 
static sint8 enter_wifi_firmware_download (void)
 Process input UART command and forward to SPI. More...
 
int main (void)
 Main application function. More...
 
static void usart_frame_parse (uint8_t *buffer, uint8_t size)
 Parse incoming frame and find the handler to process the request. More...
 
static int usart_read_block_handler (uint8_t *buffer, uint8_t size)
 
static int usart_read_reg_with_ret_handler (uint8_t *buffer, uint8_t size)
 
static int usart_reconfigure_handler (uint8_t *buffer, uint8_t size)
 
static int usart_sync_cmd_handler (uint8_t *buffer, uint8_t size)
 
static int usart_write_block_handler (uint8_t *buffer, uint8_t size)
 
static int usart_write_reg_handler (uint8_t *buffer, uint8_t size)
 

Variables

struct usart_frame usart_handler []
 

#define HANDLER_SIZE   sizeof(usart_handler) / sizeof(struct usart_frame)

Referenced by usart_frame_parse().

#define MIN (   x,
 
)    (x > y) ? y : x

Enumerator
CMD_ERR_NO_ERROR 
CMD_ERR_INTERNAL_ERROR 
CMD_ERR_INVALID_FRAME 
CMD_ERR_NO_ERROR 
CMD_ERR_INTERNAL_ERROR 
CMD_ERR_INVALID_FRAME 
CMD_ERR_NO_ERROR 
CMD_ERR_INTERNAL_ERROR 
CMD_ERR_INVALID_FRAME 

static uint8_t checksum_check ( uint8_t *  buffer,
uint8_t  size 
)
static
static sint8 enter_wifi_firmware_download ( void  )
static

Process input UART command and forward to SPI.

References M2M_ERR_INIT, M2M_SUCCESS, m2m_wifi_download_mode(), usart_frame_parse(), usart_stream_read(), and usart_stream_reset().

Referenced by main().

int main ( void  )

Main application function.

Application entry point.

Returns
program return value.

References board_init(), configure_usart(), enter_wifi_firmware_download(), nm_bsp_init(), and sysclk_init().

static void usart_frame_parse ( uint8_t *  buffer,
uint8_t  size 
)
static

Parse incoming frame and find the handler to process the request.

References HANDLER_SIZE, usart_stream_reset(), and usart_stream_write().

Referenced by enter_wifi_firmware_download().

static int usart_read_reg_with_ret_handler ( uint8_t *  buffer,
uint8_t  size 
)
static
static int usart_reconfigure_handler ( uint8_t *  buffer,
uint8_t  size 
)
static
static int usart_sync_cmd_handler ( uint8_t *  buffer,
uint8_t  size 
)
static
static int usart_write_reg_handler ( uint8_t *  buffer,
uint8_t  size 
)
static

struct usart_frame usart_handler[]
Initial value:
= {
{{0x12, 0}, 1, 1, usart_sync_cmd_handler},
{{0xa5, 0x00, 0}, 2, sizeof(struct uart_cmd_hdr) + 1, usart_read_reg_with_ret_handler},
{{0xa5, 0x01, 0}, 2, sizeof(struct uart_cmd_hdr) + 1, usart_write_reg_handler},
{{0xa5, 0x02, 0}, 2, sizeof(struct uart_cmd_hdr) + 1, usart_read_block_handler},
{{0xa5, 0x03, 0}, 2, sizeof(struct uart_cmd_hdr) + 1, usart_write_block_handler},
{{0xa5, 0x04, 0}, 2, 2, NULL},
{{0xa5, 0x05, 0}, 2, sizeof(struct uart_cmd_hdr) + 1, usart_reconfigure_handler},
{{0xa5, 0x0A, 0}, 2, 2, NULL},
}
static int usart_reconfigure_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:226
static int usart_read_block_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:163
static int usart_read_reg_with_ret_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:118
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:73
static int usart_write_block_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:188
static int usart_write_reg_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:144
static int usart_sync_cmd_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/winc1500/serial_bridge_example/serial_bridge.c:110
#define NULL
Definition: wilc/bsp/include/nm_bsp.h:70

Referenced by ISR().