4#include "libxr_def.hpp"
5#include "libxr_type.hpp"
6#include "usb/core/ep.hpp"
11#if defined(USBFSD) || defined(__DOXYGEN__)
20 bool single_direction);
26 void TransferComplete(
size_t size);
33 bool is_isochronous_ =
false;
34 bool single_direction_ =
false;
36 size_t last_transfer_size_ = 0;
39 static constexpr uint8_t EP_OTG_FS_MAX_SIZE = 8;
45#if defined(RCC_APB1Periph_USB) || defined(__DOXYGEN__)
60 void TransferComplete(
size_t size);
62 void CopyRxDataToBuffer(
size_t size);
69 static void ResetPMAAllocator();
70 static void SetEpTxStatus(uint8_t ep, uint16_t status);
71 static void SetEpRxStatus(uint8_t ep, uint16_t status);
72 static void ClearEpCtrTx(uint8_t ep);
73 static void ClearEpCtrRx(uint8_t ep);
74 static uint16_t GetRxCount(uint8_t ep);
76 bool is_isochronous_ =
false;
78 size_t last_transfer_size_ = 0;
80 uint16_t pma_addr_ = 0;
82 static constexpr uint8_t EP_DEV_FS_MAX_SIZE = 8;
88#if defined(USBHSD) || defined(__DOXYGEN__)
103 void TransferComplete(
size_t size);
112 bool hw_double_buffer_ =
false;
114 size_t last_transfer_size_ = 0;
117 static constexpr uint8_t EP_OTG_HS_MAX_SIZE = 16;
CH32 FSDEV 端点实现 / CH32 FSDEV endpoint implementation.
ErrorCode Transfer(size_t size) override
启动一次传输 / Start a transfer
void SwitchBuffer() override
切换双缓冲 / Switch double buffer
ErrorCode ClearStall() override
清除 STALL / Clear stall
ErrorCode Stall() override
置 STALL / Stall endpoint
void Configure(const Config &cfg) override
配置端点协议参数 / Configure endpoint protocol parameters
void Close() override
关闭端点 / Close endpoint
CH32 OTG FS 端点实现 / CH32 OTG FS endpoint implementation.
void SwitchBuffer() override
切换双缓冲 / Switch double buffer
ErrorCode ClearStall() override
清除 STALL / Clear stall
void Close() override
关闭端点 / Close endpoint
ErrorCode Stall() override
置 STALL / Stall endpoint
void Configure(const Config &cfg) override
配置端点协议参数 / Configure endpoint protocol parameters
ErrorCode Transfer(size_t size) override
启动一次传输 / Start a transfer
CH32 OTG HS 端点实现 / CH32 OTG HS endpoint implementation.
void Close() override
关闭端点 / Close endpoint
ErrorCode Stall() override
置 STALL / Stall endpoint
ErrorCode ClearStall() override
清除 STALL / Clear stall
ErrorCode Transfer(size_t size) override
启动一次传输 / Start a transfer
void Configure(const Config &cfg) override
配置端点协议参数 / Configure endpoint protocol parameters
void SwitchBuffer() override
切换双缓冲 / Switch double buffer
可写原始数据视图 / Mutable raw data view
USB 端点基类 / USB Endpoint base class.
EPNumber
端点号 Endpoint number
Direction
端点方向 Endpoint direction
LibXR 命名空间 / LibXR namespace.
ErrorCode
定义错误码枚举 / Defines an enumeration for error codes
端点配置参数 / Endpoint configuration parameters