mirror of
https://github.com/hathach/tinyusb.git
synced 2026-03-06 07:34:41 +00:00
Merge pull request #3478 from Precidata/limit-task-time-v2
Limit events processed by tud_task_ext() / tuh_task_ext()
This commit is contained in:
@ -666,8 +666,14 @@ void tud_task_ext(uint32_t timeout_ms, bool in_isr) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Loop until there is no more events in the queue
|
||||
while (1) {
|
||||
// Loop until there are no more events in the queue or CFG_TUD_TASK_EVENTS_PER_RUN is reached
|
||||
for (unsigned epr = 0;; epr++) {
|
||||
#if CFG_TUD_TASK_EVENTS_PER_RUN > 0
|
||||
if (epr >= CFG_TUD_TASK_EVENTS_PER_RUN) {
|
||||
TU_LOG_USBD("USBD event limit (" TU_XSTRING(CFG_TUD_TASK_EVENTS_PER_RUN) ") reached\r\n");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
dcd_event_t event;
|
||||
if (!osal_queue_receive(_usbd_q, &event, timeout_ms)) {
|
||||
return;
|
||||
|
||||
@ -599,8 +599,14 @@ void tuh_task_ext(uint32_t timeout_ms, bool in_isr) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Loop until there is no more events in the queue
|
||||
while (1) {
|
||||
// Loop until there are no more events in the queue or CFG_TUH_TASK_EVENTS_PER_RUN is reached
|
||||
for (unsigned epr = 0;; epr++) {
|
||||
#if CFG_TUH_TASK_EVENTS_PER_RUN > 0
|
||||
if (epr >= CFG_TUH_TASK_EVENTS_PER_RUN) {
|
||||
TU_LOG_USBH("USBH event limit (" TU_XSTRING(CFG_TUH_TASK_EVENTS_PER_RUN) ") reached\r\n");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
hcd_event_t event;
|
||||
if (!osal_queue_receive(_usbh_q, &event, timeout_ms)) { return; }
|
||||
|
||||
|
||||
@ -560,6 +560,11 @@
|
||||
#define CFG_TUD_INTERFACE_MAX 16
|
||||
#endif
|
||||
|
||||
// max events processed in one tud_task_ext() call, 0 for unlimited
|
||||
#ifndef CFG_TUD_TASK_EVENTS_PER_RUN
|
||||
#define CFG_TUD_TASK_EVENTS_PER_RUN 16
|
||||
#endif
|
||||
|
||||
// default to max hardware endpoint, but can be smaller to save RAM
|
||||
#ifndef CFG_TUD_ENDPPOINT_MAX
|
||||
#define CFG_TUD_ENDPPOINT_MAX TUP_DCD_ENDPOINT_MAX
|
||||
@ -679,6 +684,11 @@
|
||||
#define CFG_TUH_MEM_DCACHE_LINE_SIZE CFG_TUSB_MEM_DCACHE_LINE_SIZE
|
||||
#endif
|
||||
|
||||
// max events processed in one tuh_task_ext() call, 0 for unlimited
|
||||
#ifndef CFG_TUH_TASK_EVENTS_PER_RUN
|
||||
#define CFG_TUH_TASK_EVENTS_PER_RUN 16
|
||||
#endif
|
||||
|
||||
//------------- CLASS -------------//
|
||||
|
||||
#ifndef CFG_TUH_HUB
|
||||
|
||||
Reference in New Issue
Block a user