Microchip® Advanced Software Framework

common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c File Reference

Configurations for the WILC1000 Serial Bridge Application.

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

#include "asf.h"
#include "uart_stream.h"
#include "FreeRTOS.h"
#include "osprintf.h"
#include "os/include/net_init.h"
#include "os/include/m2m_wifi_ex.h"
#include "bsp/include/nm_bsp.h"
#include "driver/source/nmbus.h"
#include "lwip/def.h"
#include "conf_wilc.h"
#include <string.h>
#include <stdio.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
 
#define MODE_STA_PRIORITY   (tskIDLE_PRIORITY + 1)
 
#define MODE_STA_STACK_SIZE   (1024 / sizeof(portSTACK_TYPE))
 
#define STRING_EOL   "\r\n"
 
#define STRING_HEADER
 

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

void bt_serial_bridge ()
 
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)
 
void fatal (int code, const char *msg)
 
void hard_fault (uint32_t *args, uint32_t lr)
 
void HardFault_Handler (void)
 
int main (void)
 Main application function. More...
 
static sint8 serial_bridge (void)
 Process input UART command and forward to SPI. 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

static uint32_t fault_addr
 
uint8_t hci_recv_buffer [13]
 
uint32_t ms_ticks = 0
 SysTick counter to avoid busy wait delay. More...
 
uint8_t reset_buffer [13] = {0xA5,0x01,0x10,0x00,0x00,0x00,0x14,0x00,0x00,005,0x00,0x00,0x00}
 
uint8_t reset_sdio_buffer [13] = {0xA5,0x01,0x10,0x00,0x00,0x00,0x14,0x00,0x00,0xFF,0xFB,0xFF,0xFF}
 
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
#define MODE_STA_PRIORITY   (tskIDLE_PRIORITY + 1)

Referenced by main().

#define MODE_STA_STACK_SIZE   (1024 / sizeof(portSTACK_TYPE))

Referenced by main().

#define STRING_EOL   "\r\n"
#define STRING_HEADER
Value:
"-- WILC station mode example --"STRING_EOL \
"-- Compiled: "__DATE__ " "__TIME__ " --"STRING_EOL
#define BOARD_NAME
Definition: inc/app_init.h:140
#define STRING_EOL
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:91

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
void fatal ( int  code,
const char *  msg 
)
void hard_fault ( uint32_t *  args,
uint32_t  lr 
)
void HardFault_Handler ( void  )
int main ( void  )

Main application function.

Application entry point.

Returns
program return value.

References board_init(), configure_usart(), MODE_STA_PRIORITY, MODE_STA_STACK_SIZE, serial_bridge(), sysclk_init(), vTaskStartScheduler(), and xTaskCreate.

static sint8 serial_bridge ( void  )
static

Process input UART command and forward to SPI.

References M2M_ERR_INIT, M2M_SUCCESS, NULL, os_m2m_wifi_init(), tstrWifiInitParam::pfAppWifiCb, usart_frame_parse(), usart_stream_read(), and usart_stream_reset().

Referenced by main().

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, reset_buffer, reset_sdio_buffer, usart_stream_reset(), and usart_stream_write().

Referenced by serial_bridge().

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

uint32_t fault_addr
static
uint8_t hci_recv_buffer[13]
uint32_t ms_ticks = 0

SysTick counter to avoid busy wait delay.

uint8_t reset_buffer[13] = {0xA5,0x01,0x10,0x00,0x00,0x00,0x14,0x00,0x00,005,0x00,0x00,0x00}
uint8_t reset_sdio_buffer[13] = {0xA5,0x01,0x10,0x00,0x00,0x00,0x14,0x00,0x00,0xFF,0xFB,0xFF,0xFF}
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_write_reg_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:238
static int usart_read_block_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:258
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/wilc/serial_bridge_wilc1000_example/serial_bridge.c:283
static int usart_read_reg_with_ret_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:211
#define NULL
Definition: wilc/bsp/include/nm_bsp.h:70
static int usart_sync_cmd_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:203
static int usart_reconfigure_handler(uint8_t *buffer, uint8_t size)
Definition: common/components/wifi/wilc/serial_bridge_wilc1000_example/serial_bridge.c:322