101 lines
2.1 KiB
C
101 lines
2.1 KiB
C
/*
|
|
* Copyright (c) 2023 ~ 2025, sakumisu
|
|
* Copyright (c) 2023 ~ 2025, HalfSweet
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#ifndef DAP_MAIN_H
|
|
#define DAP_MAIN_H
|
|
|
|
#include "usbd_core.h"
|
|
#include "usbd_cdc.h"
|
|
#include "usbd_msc.h"
|
|
#include "usbd_hid.h"
|
|
#include "chry_ringbuffer.h"
|
|
#include "DAP_config.h"
|
|
#include "DAP.h"
|
|
|
|
#define DAP_IN_EP 0x81
|
|
#define DAP_OUT_EP 0x02
|
|
|
|
#define CDC_IN_EP 0x83
|
|
#define CDC_OUT_EP 0x04
|
|
#define CDC_INT_EP 0x85
|
|
|
|
#define MSC_IN_EP 0x86
|
|
#define MSC_OUT_EP 0x07
|
|
|
|
#define HID_IN_EP 0x88
|
|
#define HID_OUT_EP 0x09
|
|
|
|
#define USBD_VID 0x0D28
|
|
#define USBD_PID 0x0204
|
|
#define USBD_MAX_POWER 500
|
|
#define USBD_LANGID_STRING 1033
|
|
|
|
#ifdef CONFIG_USB_HS
|
|
#if DAP_PACKET_SIZE != 512
|
|
#error "DAP_PACKET_SIZE must be 512 in hs"
|
|
#endif
|
|
#else
|
|
#if DAP_PACKET_SIZE != 64
|
|
#error "DAP_PACKET_SIZE must be 64 in fs"
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef CONFIG_USB_HS
|
|
#define HID_PACKET_SIZE 1024
|
|
#else
|
|
#define HID_PACKET_SIZE 64
|
|
#endif
|
|
|
|
#define CONFIG_UARTRX_RINGBUF_SIZE (8 * 1024)
|
|
#define CONFIG_USBRX_RINGBUF_SIZE (8 * 1024)
|
|
|
|
#ifndef CONFIG_CHERRYDAP_USE_MSC
|
|
#define CONFIG_CHERRYDAP_USE_MSC 0
|
|
#endif
|
|
|
|
#ifndef CONFIG_CHERRYDAP_USE_CUSTOM_HID
|
|
#define CONFIG_CHERRYDAP_USE_CUSTOM_HID 0
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern char serial_number_dynamic[36];
|
|
|
|
extern struct usbd_interface hid_intf;
|
|
|
|
extern chry_ringbuffer_t g_uartrx;
|
|
extern chry_ringbuffer_t g_usbrx;
|
|
|
|
void chry_dap_init(uint8_t busid, uint32_t reg_base);
|
|
|
|
void chry_dap_handle(void);
|
|
|
|
void chry_dap_usb2uart_handle(void);
|
|
|
|
/* implment by user */
|
|
extern void chry_dap_usb2uart_uart_config_callback(struct cdc_line_coding *line_coding);
|
|
|
|
/* implment by user */
|
|
extern void chry_dap_usb2uart_uart_send_bydma(uint8_t *data, uint16_t len);
|
|
|
|
void chry_dap_usb2uart_uart_send_complete(uint32_t size);
|
|
|
|
/* implment by user */
|
|
extern void hid_custom_notify_handler(uint8_t busid, uint8_t event, void *arg);
|
|
|
|
/* implment by user */
|
|
extern void usbd_hid_custom_in_callback(uint8_t busid, uint8_t ep, uint32_t nbytes);
|
|
|
|
/* implment by user */
|
|
extern void usbd_hid_custom_out_callback(uint8_t busid, uint8_t ep, uint32_t nbytes);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |