10#define EV_MODE (1U << 1)
27static void send(
void* ctx,
const uint8_t* bytes, uint16_t len) {
32static void set_baud(
void* ctx, uint32_t baud) {
37static void to_emmc(
void* ctx, uint8_t type,
const void* data, uint8_t len) {
47 bool uart_started =
false,
active =
false;
69 (wait_us + 999U) / 1000U);
80 static uint32_t last_status_us;
82 if (
want_status && now - last_status_us >= 1000000U &&
#define REG_3V6_EN_GPIO_Port
board_pps_t board_time_last_pps(void)
uint32_t board_time_us(void)
size_t board_uart9_read(uint8_t *out, size_t cap)
bool board_uart9_start(osThreadId_t thread, uint32_t flag)
void board_uart9_set_baud(uint32_t baud)
void board_uart9_send(const uint8_t *bytes, uint16_t len)
#define osFlagsWaitAny
Wait for any flag (default).
osThreadId_t osThreadNew(osThreadFunc_t func, void *argument, const osThreadAttr_t *attr)
Create a thread and add it to Active Threads.
uint32_t osThreadFlagsSet(osThreadId_t thread_id, uint32_t flags)
Set the specified Thread Flags of a thread.
uint32_t osKernelGetTickCount(void)
Get the RTOS kernel tick count.
osThreadId_t osThreadGetId(void)
Return the thread ID of the current running thread.
#define osWaitForever
Wait forever timeout value.
uint32_t osThreadFlagsWait(uint32_t flags, uint32_t options, uint32_t timeout)
Wait for one or more Thread Flags of the current running thread to become signaled.
@ osPriorityNormal
Priority: normal.
osStatus_t osDelay(uint32_t ticks)
Wait for Timeout (Time Delay).
bool emmc_log_append(emmc_log_t *log, uint8_t type, uint32_t t_ms, const void *data, uint8_t len)
emmc_log_t * emmc_stm32_log(void)
void gnss_core_feed(gnss_core_t *c, const uint8_t *bytes, size_t n, uint32_t now_us)
void gnss_core_set_pps(gnss_core_t *c, uint32_t edge_us)
uint32_t gnss_core_wait_us(const gnss_core_t *c, uint32_t now_us)
void gnss_core_init(gnss_core_t *c, uint32_t now_us)
void gnss_core_poll(gnss_core_t *c, uint32_t now_us)
bool gnss_core_request_status(gnss_core_t *c)
void gnss_task_set_active(bool on)
static void gnss_task(void *argument)
static void to_emmc(void *ctx, uint8_t type, const void *data, uint8_t len)
const gnss_core_t * gnss_task_core(void)
static void gps_power(bool on)
static volatile bool want_active
void gnss_task_poll_status(bool on)
static volatile bool want_status
bool gnss_task_start(void)
static osThreadId_t thread
static void send(void *ctx, const uint8_t *bytes, uint16_t len)
static void set_baud(void *ctx, uint32_t baud)
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
*brief user defined string literal for JSON values *sa std::size_t n
Attributes structure for thread.