| Age | Commit message (Collapse) | Author |
|
* license: use SPDX identifiers for src/ headers
Replace the full ~20-line MIT license boilerplate on every src/ file with a
two-line SPDX tag (SPDX-FileCopyrightText + SPDX-License-Identifier), following
the REUSE convention used by CircuitPython and the Linux kernel. Removes ~3500
lines of duplicated boilerplate.
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
tuh_rhport_init() calls osal_spin_init(&_usbh_spin), which under OPT_OS_PICO
claims a hardware spinlock via critical_section_init(). There was no
osal_spin_deinit(), so tuh_deinit() never released it: every host init/deinit
cycle leaked one spinlock. RP2350 has a small spinlock pool, so a few usb_host
rebuilds exhaust it and hw_claim_unused_from_range() panics (the long-standing
"crashes on the 4th rebuild" bug).
Add osal_spin_deinit() to all OSAL backends (critical_section_deinit for pico;
no-op for none/freertos) and call it in tuh_deinit(). Verified 20/20
deinit+rebuild cycles on RP2350-Zero and Waveshare RP2350-USB-A (previously
panicked on the 4th).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
- Added a pending FIFO queue for asynchronous control transfers when the active slot is busy.
- Introduced `control_xfer_dispatch_pending` to handle queued transfers on slot availability.
- Improved synchronization for blocking and non-blocking transfer modes, preventing deadlocks in RTOS.
- Refactored and renamed related functions for clarity and consistency.
- Enhanced error handling and callback invocation for failed or stale transfers.
|
|
|
|
|
|
|
|
implement tusb_time_millis_api() with osal_time_millis() when OS is not NONE
|
|
|
|
|
|
add spinlock implementation for most rtos
|
|
|
|
|
|
ISO C does not allow extra ';' outside of a function [-Werror=pedantic]
|
|
add osal_semaphore_delete(), osal_mutex_delete(), osal_queue_delete()
|
|
also mass change configQUEUE_REGISTRY_SIZE = 4
|
|
debuggers"
This reverts commit 11fba59319d81fb9502fbf399abb4fe27cf3fa29.
|
|
|
|
tinyUSB queue
|
|
temporarily disable codespell
|
|
Fix FreeRTOS task switch even if not required (unitialized variable usage)
|
|
configSUPPORT_DYNAMIC_ALLOCATION only
note: for example to build with configSUPPORT_STATIC_ALLOCATION = 0, one
of heap_n.c must be included in makefile/cmake
|
|
|
|
|
|
|
|
|
|
pending for event queue with timeout of 1 ms
|
|
|
|
|
|
useful for freertos/ prefix with esp IDF
|
|
add support of new esp32s3 target and the board
update the roles.mk wrapper to allow dfu flashing of espressif chip
update examples to allow compilation for esp32s3_addax_1 board
once the code is tested the PR to original tinyusb repo will be submitted
|
|
|
|
If we do not yeld in ISR when we write to queue/give semaphore, the scheduler will not know of the change and will not check the queue untill the next OS tick. This change causes the task to be called immediately and makes communication many times faster.
|
|
|
|
since it doesn't make any differences.
|
|
ported for osal none/freertos/mynewt
|
|
|
|
|
|
- remove use of osal_queue_reset
|
|
|
|
|
|
remove OSAL_TASK_DEF, osal_task_create. Applicaton should create a task
and call tinyusb_task(). This make API consistent with NO OS.
|
|
|
|
|
|
|
|
- fix build issue with freertos
|
|
The ProtoThreads style subtasks were removed because it led to
extremely unclear control flow. RTOSes can be used if threading is
needed.
Also added some additional functionality to MSC to support dynamic
LUNs and read-only LUNs.
|
|
|
|
|
|
osal_semaphore_post
|