add dcd_irq_handler to porting doc

This commit is contained in:
hathach 2020-04-11 15:46:20 +07:00
parent defea45d44
commit 4748b349a2
1 changed files with 11 additions and 1 deletions

View File

@ -60,24 +60,33 @@ All of the code for the low-level device API is in `src/portable/<vendor>/<chip
#### Device Setup #### Device Setup
##### dcd_init ##### dcd_init
Initializes the USB peripheral for device mode and enables it. Initializes the USB peripheral for device mode and enables it.
#### dcd_int_enable / dcd_int_disable ##### dcd_int_enable / dcd_int_disable
Enables or disables the USB device interrupt(s). May be used to prevent concurrency issues when mutating data structures shared between main code and the interrupt handler. Enables or disables the USB device interrupt(s). May be used to prevent concurrency issues when mutating data structures shared between main code and the interrupt handler.
##### dcd_irq_handler
Processes all the hardware generated events e.g Bus reset, new data packet from host etc ... It will be called by application in the MCU USB interrupt handler.
##### dcd_set_address ##### dcd_set_address
Called when the device is given a new bus address. Called when the device is given a new bus address.
If your peripheral automatically changes address during enumeration (like the nrf52) you may leave this empty and also no queue an event for the corresponding SETUP packet. If your peripheral automatically changes address during enumeration (like the nrf52) you may leave this empty and also no queue an event for the corresponding SETUP packet.
##### dcd_set_config ##### dcd_set_config
Called when the device received SET_CONFIG request, you can leave this empty if your peripheral does not require any specific action. Called when the device received SET_CONFIG request, you can leave this empty if your peripheral does not require any specific action.
##### dcd_remote_wakeup ##### dcd_remote_wakeup
Called to remote wake up host when suspended (e.g hid keyboard) Called to remote wake up host when suspended (e.g hid keyboard)
#### Special events #### Special events
You must let TinyUSB know when certain events occur so that it can continue its work. There are a few methods you can call to queue events for TinyUSB to process. You must let TinyUSB know when certain events occur so that it can continue its work. There are a few methods you can call to queue events for TinyUSB to process.
##### dcd_event_bus_signal ##### dcd_event_bus_signal
@ -96,6 +105,7 @@ The first `0` is the USB peripheral number. Statically saying 0 is common for si
The `true` indicates the call is from an interrupt handler and will always be the case when porting in this way. The `true` indicates the call is from an interrupt handler and will always be the case when porting in this way.
##### dcd_setup_received ##### dcd_setup_received
SETUP packets are a special type of transaction that can occur at any time on the control endpoint, numbered `0`. Since they are unique, most peripherals have special handling for them. Their data is always 8 bytes in length as well. SETUP packets are a special type of transaction that can occur at any time on the control endpoint, numbered `0`. Since they are unique, most peripherals have special handling for them. Their data is always 8 bytes in length as well.
Calls to this look like: Calls to this look like: