55 lines
1.0 KiB
C
55 lines
1.0 KiB
C
|
#pragma once
|
||
|
#include <stdint.h>
|
||
|
|
||
|
typedef enum {
|
||
|
DapModeDisconnected,
|
||
|
DapModeSWD,
|
||
|
DapModeJTAG,
|
||
|
} DapMode;
|
||
|
|
||
|
typedef enum {
|
||
|
DapVersionUnknown,
|
||
|
DapVersionV1,
|
||
|
DapVersionV2,
|
||
|
} DapVersion;
|
||
|
|
||
|
typedef struct {
|
||
|
bool usb_connected;
|
||
|
DapMode dap_mode;
|
||
|
DapVersion dap_version;
|
||
|
uint32_t dap_counter;
|
||
|
uint32_t cdc_baudrate;
|
||
|
uint32_t cdc_tx_counter;
|
||
|
uint32_t cdc_rx_counter;
|
||
|
} DapState;
|
||
|
|
||
|
typedef enum {
|
||
|
DapSwdPinsPA7PA6, // Pins 2, 3
|
||
|
DapSwdPinsPA14PA13, // Pins 10, 12
|
||
|
} DapSwdPins;
|
||
|
|
||
|
typedef enum {
|
||
|
DapUartTypeUSART1, // Pins 13, 14
|
||
|
DapUartTypeLPUART1, // Pins 15, 16
|
||
|
} DapUartType;
|
||
|
|
||
|
typedef enum {
|
||
|
DapUartTXRXNormal,
|
||
|
DapUartTXRXSwap,
|
||
|
} DapUartTXRX;
|
||
|
|
||
|
typedef struct {
|
||
|
DapSwdPins swd_pins;
|
||
|
DapUartType uart_pins;
|
||
|
DapUartTXRX uart_swap;
|
||
|
} DapConfig;
|
||
|
|
||
|
typedef struct DapApp DapApp;
|
||
|
|
||
|
void dap_app_get_state(DapApp* app, DapState* state);
|
||
|
|
||
|
const char* dap_app_get_serial(DapApp* app);
|
||
|
|
||
|
void dap_app_set_config(DapApp* app, DapConfig* config);
|
||
|
|
||
|
DapConfig* dap_app_get_config(DapApp* app);
|