Open FFBoard
Open source force feedback firmware
dcd_stm32_fsdev.c File Reference

Go to the source code of this file.

Classes

struct  xfer_ctl_t
 
struct  ep_alloc_t
 

Functions

static void handle_bus_reset (uint8_t rhport)
 
static void dcd_transmit_packet (xfer_ctl_t *xfer, uint16_t ep_ix)
 
static bool edpt_xfer (uint8_t rhport, uint8_t ep_num, tusb_dir_t dir)
 
static uint32_t dcd_pma_alloc (uint16_t len, bool dbuf)
 
static uint8_t dcd_ep_alloc (uint8_t ep_addr, uint8_t ep_type)
 
static bool dcd_write_packet_memory (uint16_t dst, const void *__restrict src, uint16_t nbytes)
 
static bool dcd_read_packet_memory (void *__restrict dst, uint16_t src, uint16_t nbytes)
 
static bool dcd_write_packet_memory_ff (tu_fifo_t *ff, uint16_t dst, uint16_t wNBytes)
 
static bool dcd_read_packet_memory_ff (tu_fifo_t *ff, uint16_t src, uint16_t wNBytes)
 
static void edpt0_open (uint8_t rhport)
 
static TU_ATTR_ALWAYS_INLINE void edpt0_prepare_setup (void)
 
static TU_ATTR_ALWAYS_INLINE xfer_ctl_txfer_ctl_ptr (uint8_t epnum, uint8_t dir)
 
bool dcd_init (uint8_t rhport, const tusb_rhport_init_t *rh_init)
 
void dcd_sof_enable (uint8_t rhport, bool en)
 
void dcd_set_address (uint8_t rhport, uint8_t dev_addr)
 
void dcd_remote_wakeup (uint8_t rhport)
 
static void handle_ctr_tx (uint32_t ep_id)
 
static void handle_ctr_setup (uint32_t ep_id)
 
static void handle_ctr_rx (uint32_t ep_id)
 
void dcd_int_handler (uint8_t rhport)
 
void dcd_edpt0_status_complete (uint8_t rhport, tusb_control_request_t const *request)
 
bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const *desc_ep)
 
void dcd_edpt_close_all (uint8_t rhport)
 
bool dcd_edpt_iso_alloc (uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size)
 
bool dcd_edpt_iso_activate (uint8_t rhport, tusb_desc_endpoint_t const *desc_ep)
 
bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
 
bool dcd_edpt_xfer_fifo (uint8_t rhport, uint8_t ep_addr, tu_fifo_t *ff, uint16_t total_bytes)
 
void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr)
 
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
 

Variables

static xfer_ctl_t xfer_status [CFG_TUD_ENDPPOINT_MAX][2]
 
static ep_alloc_t ep_alloc_status [FSDEV_EP_COUNT]
 
static uint8_t remoteWakeCountdown
 
static uint16_t ep_buf_ptr
 Points to first free memory location. More...
 

Function Documentation

◆ dcd_edpt0_status_complete()

void dcd_edpt0_status_complete ( uint8_t  rhport,
tusb_control_request_t const *  request 
)

Definition at line 474 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 796 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 628 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_iso_activate()

bool dcd_edpt_iso_activate ( uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_ep 
)

Definition at line 673 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_iso_alloc()

bool dcd_edpt_iso_alloc ( uint8_t  rhport,
uint8_t  ep_addr,
uint16_t  largest_packet_size 
)

Definition at line 647 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_ep 
)

Definition at line 579 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 782 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_xfer()

bool dcd_edpt_xfer ( uint8_t  rhport,
uint8_t  ep_addr,
uint8_t *  buffer,
uint16_t  total_bytes 
)

Definition at line 756 of file dcd_stm32_fsdev.c.

◆ dcd_edpt_xfer_fifo()

bool dcd_edpt_xfer_fifo ( uint8_t  rhport,
uint8_t  ep_addr,
tu_fifo_t ff,
uint16_t  total_bytes 
)

Definition at line 769 of file dcd_stm32_fsdev.c.

◆ dcd_ep_alloc()

static uint8_t dcd_ep_alloc ( uint8_t  ep_addr,
uint8_t  ep_type 
)
static

Definition at line 516 of file dcd_stm32_fsdev.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 187 of file dcd_stm32_fsdev.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 371 of file dcd_stm32_fsdev.c.

◆ dcd_pma_alloc()

static uint32_t dcd_pma_alloc ( uint16_t  len,
bool  dbuf 
)
static

Definition at line 492 of file dcd_stm32_fsdev.c.

◆ dcd_read_packet_memory()

static bool dcd_read_packet_memory ( void *__restrict  dst,
uint16_t  src,
uint16_t  nbytes 
)
static

Definition at line 850 of file dcd_stm32_fsdev.c.

◆ dcd_read_packet_memory_ff()

static bool dcd_read_packet_memory_ff ( tu_fifo_t ff,
uint16_t  src,
uint16_t  wNBytes 
)
static

Definition at line 926 of file dcd_stm32_fsdev.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 252 of file dcd_stm32_fsdev.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 242 of file dcd_stm32_fsdev.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 231 of file dcd_stm32_fsdev.c.

◆ dcd_transmit_packet()

static void dcd_transmit_packet ( xfer_ctl_t xfer,
uint16_t  ep_ix 
)
static

Definition at line 697 of file dcd_stm32_fsdev.c.

◆ dcd_write_packet_memory()

static bool dcd_write_packet_memory ( uint16_t  dst,
const void *__restrict  src,
uint16_t  nbytes 
)
static

Definition at line 821 of file dcd_stm32_fsdev.c.

◆ dcd_write_packet_memory_ff()

static bool dcd_write_packet_memory_ff ( tu_fifo_t ff,
uint16_t  dst,
uint16_t  wNBytes 
)
static

Definition at line 877 of file dcd_stm32_fsdev.c.

◆ edpt0_open()

void edpt0_open ( uint8_t  rhport)
static

Definition at line 551 of file dcd_stm32_fsdev.c.

◆ edpt0_prepare_setup()

static TU_ATTR_ALWAYS_INLINE void edpt0_prepare_setup ( void  )
inlinestatic

Definition at line 172 of file dcd_stm32_fsdev.c.

◆ edpt_xfer()

static bool edpt_xfer ( uint8_t  rhport,
uint8_t  ep_num,
tusb_dir_t  dir 
)
static

Definition at line 728 of file dcd_stm32_fsdev.c.

◆ handle_bus_reset()

static void handle_bus_reset ( uint8_t  rhport)
static

Definition at line 259 of file dcd_stm32_fsdev.c.

◆ handle_ctr_rx()

static void handle_ctr_rx ( uint32_t  ep_id)
static

Definition at line 326 of file dcd_stm32_fsdev.c.

◆ handle_ctr_setup()

static void handle_ctr_setup ( uint32_t  ep_id)
static

Definition at line 304 of file dcd_stm32_fsdev.c.

◆ handle_ctr_tx()

static void handle_ctr_tx ( uint32_t  ep_id)
static

Definition at line 279 of file dcd_stm32_fsdev.c.

◆ xfer_ctl_ptr()

static TU_ATTR_ALWAYS_INLINE xfer_ctl_t * xfer_ctl_ptr ( uint8_t  epnum,
uint8_t  dir 
)
inlinestatic

Definition at line 180 of file dcd_stm32_fsdev.c.

Variable Documentation

◆ ep_alloc_status

ep_alloc_t ep_alloc_status[FSDEV_EP_COUNT]
static

Definition at line 148 of file dcd_stm32_fsdev.c.

◆ ep_buf_ptr

uint16_t ep_buf_ptr
static

Points to first free memory location.

Definition at line 161 of file dcd_stm32_fsdev.c.

◆ remoteWakeCountdown

uint8_t remoteWakeCountdown
static

Definition at line 149 of file dcd_stm32_fsdev.c.

◆ xfer_status

xfer_ctl_t xfer_status[CFG_TUD_ENDPPOINT_MAX][2]
static

Definition at line 147 of file dcd_stm32_fsdev.c.