dap_link.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include <stdint.h>
  3. typedef enum {
  4. DapModeDisconnected,
  5. DapModeSWD,
  6. DapModeJTAG,
  7. } DapMode;
  8. typedef enum {
  9. DapVersionUnknown,
  10. DapVersionV1,
  11. DapVersionV2,
  12. } DapVersion;
  13. typedef struct {
  14. bool usb_connected;
  15. DapMode dap_mode;
  16. DapVersion dap_version;
  17. uint32_t dap_counter;
  18. uint32_t cdc_baudrate;
  19. uint32_t cdc_tx_counter;
  20. uint32_t cdc_rx_counter;
  21. } DapState;
  22. typedef enum {
  23. DapSwdPinsPA7PA6, // Pins 2, 3
  24. DapSwdPinsPA14PA13, // Pins 10, 12
  25. } DapSwdPins;
  26. typedef enum {
  27. DapUartTypeUSART1, // Pins 13, 14
  28. DapUartTypeLPUART1, // Pins 15, 16
  29. } DapUartType;
  30. typedef enum {
  31. DapUartTXRXNormal,
  32. DapUartTXRXSwap,
  33. } DapUartTXRX;
  34. typedef struct {
  35. DapSwdPins swd_pins;
  36. DapUartType uart_pins;
  37. DapUartTXRX uart_swap;
  38. } DapConfig;
  39. typedef struct DapApp DapApp;
  40. void dap_app_get_state(DapApp* app, DapState* state);
  41. const char* dap_app_get_serial(DapApp* app);
  42. void dap_app_set_config(DapApp* app, DapConfig* config);
  43. DapConfig* dap_app_get_config(DapApp* app);