添加GD32H7的CMake工程
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/*!
|
||||
\file custom_hid_core.h
|
||||
\brief definitions for HID core
|
||||
|
||||
\version 2025-01-24, V1.4.0, firmware for GD32H7xx
|
||||
*/
|
||||
|
||||
/*
|
||||
Copyright (c) 2025, GigaDevice Semiconductor Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
3. Neither the name of the copyright holder nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
||||
OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef CUSTOM_HID_CORE_H
|
||||
#define CUSTOM_HID_CORE_H
|
||||
|
||||
#include "usbd_enum.h"
|
||||
#include "usb_hid.h"
|
||||
|
||||
#define DESC_LEN_REPORT 96U /*!< report descriptor length */
|
||||
#define DESC_LEN_CONFIG 41U /*!< configuration descriptor length */
|
||||
#define NO_CMD 0xFFU /*!< no command */
|
||||
#define MAX_PERIPH_NUM 4U /*!< maximum peripheral number */
|
||||
|
||||
typedef struct {
|
||||
__ALIGN_BEGIN uint8_t data[2] __ALIGN_END; /*!< custom HID data packet buff */
|
||||
uint8_t reportID; /*!< custom HID report id */
|
||||
uint8_t idlestate; /*!< idle state */
|
||||
uint8_t protocol; /*!< HID protocol */
|
||||
} custom_hid_handler;
|
||||
|
||||
typedef struct {
|
||||
void (*periph_config[MAX_PERIPH_NUM])(void);
|
||||
} hid_fop_handler;
|
||||
|
||||
extern usb_desc custom_hid_desc;
|
||||
extern usb_class_core usbd_custom_hid_cb;
|
||||
|
||||
/* function declarations */
|
||||
/* register HID interface operation functions */
|
||||
uint8_t custom_hid_itfop_register(usb_dev *udev, hid_fop_handler *hid_fop);
|
||||
/* send custom HID report */
|
||||
uint8_t custom_hid_report_send(usb_dev *udev, uint8_t *report, uint32_t len);
|
||||
|
||||
#endif /* CUSTOM_HID_CORE_H */
|
||||
@@ -0,0 +1,70 @@
|
||||
/*!
|
||||
\file standard_hid_core.h
|
||||
\brief definitions for HID core
|
||||
|
||||
\version 2025-01-24, V1.4.0, firmware for GD32H7xx
|
||||
*/
|
||||
|
||||
/*
|
||||
Copyright (c) 2025, GigaDevice Semiconductor Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
3. Neither the name of the copyright holder nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
||||
OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STANDARD_HID_CORE_H
|
||||
#define STANDARD_HID_CORE_H
|
||||
|
||||
#include "usbd_enum.h"
|
||||
#include "usb_hid.h"
|
||||
|
||||
#define USB_BOS_DESC_SIZE 0x0CU /*!< HID device bos descriptor size */
|
||||
#define USB_DEVICE_CAPABITY 0x10U /*!< HID device capabity */
|
||||
|
||||
#define USB_HID_CONFIG_DESC_LEN 0x22U /*!< HID device configuration descriptor length */
|
||||
#define USB_HID_REPORT_DESC_LEN 0x2EU /*!< HID device report descriptor length */
|
||||
|
||||
#define NO_CMD 0xFFU /*!< no command */
|
||||
|
||||
typedef struct {
|
||||
uint32_t protocol; /*!< control request protocol */
|
||||
uint32_t idle_state; /*!< HID device idle state */
|
||||
__ALIGN_BEGIN uint8_t data[HID_IN_PACKET] __ALIGN_END; /*!< data transfer buff */
|
||||
__IO uint8_t prev_transfer_complete; /*!< previous transfer complete flag */
|
||||
} standard_hid_handler;
|
||||
|
||||
typedef struct {
|
||||
void (*hid_itf_config)(void);
|
||||
void (*hid_itf_data_process)(usb_dev *udev);
|
||||
} hid_fop_handler;
|
||||
|
||||
extern usb_desc hid_desc;
|
||||
extern usb_class_core usbd_hid_cb;
|
||||
|
||||
/* function declarations */
|
||||
/* register HID interface operation functions */
|
||||
uint8_t hid_itfop_register(usb_dev *udev, hid_fop_handler *hid_fop);
|
||||
/* send keyboard report */
|
||||
uint8_t hid_report_send(usb_dev *udev, uint8_t *report, uint32_t len);
|
||||
|
||||
#endif /* STANDARD_HID_CORE_H */
|
||||
Reference in New Issue
Block a user