STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
emmc_stm32.h
Go to the documentation of this file.
1#ifndef STAR_EMMC_STM32_H
2#define STAR_EMMC_STM32_H
3
4/*
5 * Board side of the eMMC flight log: emmc_port_t on SDMMC1 (4-bit, IDMA),
6 * the log's RAM buffers in AXI SRAM, and the writer task.
7 *
8 * NOT YET COMPILED: the STM32 build (PlatformIO env:flight) comes with
9 * PR #165. The portable log it serves is host-tested (tests/emmc). What
10 * integration still needs (linker section for the DMA buffers, SDMMC1
11 * interrupt, writer task) is listed in EMMC-ARCHITECTURE.md, section 7.
12 */
13
14#include <stdint.h>
15
16#include "emmc_card.h"
17#include "emmc_log.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/*
24 * Create the mutex and completion semaphore and initialise the log. No card
25 * I/O. Call once after osKernelInitialize(), before any task appends.
26 */
28
29/* The board's one flight log, for emmc_log_on_state()/emmc_log_append(). */
31
32/*
33 * What start() read from the card (CID/EXT_CSD) and emmc_card_check()'s
34 * verdict. Valid once the log has mounted (first service after Arm);
35 * returns NULL before.
36 */
37const emmc_card_info_t* emmc_stm32_card(uint32_t* issues);
38
39/* The writer: loops emmc_log_service(). Run at low priority. */
40void emmc_stm32_writer_task(void* argument);
41
42#ifdef __cplusplus
43}
44#endif
45#endif
emmc_status_t
Definition emmc_port.h:22
const emmc_card_info_t * emmc_stm32_card(uint32_t *issues)
Definition emmc_stm32.c:250
void emmc_stm32_writer_task(void *argument)
Definition emmc_stm32.c:260
emmc_status_t emmc_stm32_init(void)
Definition emmc_stm32.c:235
emmc_log_t * emmc_stm32_log(void)
Definition emmc_stm32.c:246