STM32H750VB_LwESP/Core/Src/lwesp_ll.c

63 lines
1.3 KiB
C

#include "system/lwesp_ll.h"
#include "lwesp/lwesp.h"
#include "lwesp/lwesp_input.h"
#include "lwesp/lwesp_mem.h"
#include "stm32h7xx_hal.h"
#include "cmsis_os.h"
#define UART_TIMEOUT 1000
#define HEAP_SIZE 4096
extern UART_HandleTypeDef huart1;
static uint8_t s_lwesp_heap[HEAP_SIZE];
static uint8_t s_initialized;
static osThreadId_t usart_ll_thread_id;
static osMessageQueueId_t usart_ll_mbox_id;
static void usart_ll_thread(void *arg) {
for (;;) {
}
}
static void configure_uart(uint32_t baudrate) {
//
}
static size_t send_data(const void *data, size_t len) {
HAL_UART_Transmit(&huart1, (uint8_t *)data, len, 1000);
return len;
}
lwespr_t lwesp_ll_init(lwesp_ll_t *ll) {
lwesp_mem_region_t mem_regions[] = {{s_lwesp_heap, HEAP_SIZE}};
if (!s_initialized) {
lwesp_mem_assignmemory(mem_regions, LWESP_ARRAYSIZE(mem_regions));
ll->send_fn = send_data;
}
configure_uart(ll->uart.baudrate);
if(!s_initialized) {
const osThreadAttr_t attr = {
.stack_size = 1024
};
usart_ll_mbox_id = osMessageQueueNew(10, sizeof(void *), NULL);
usart_ll_thread_id = osThreadNew(usart_ll_thread, usart_ll_mbox_id, &attr);
}
s_initialized = 1;
return lwespOK;
}
lwespr_t lwesp_ll_deinit(lwesp_ll_t *ll) {
//
return lwespOK;
}