Comments (4)
Hi, your issue involved Arduino which isn't covered by this repo. Please try to reproduce with stock examples:
https://github.com/hathach/tinyusb/tree/master/examples/device
from tinyusb.
You might be correct that it's limited to the Arduino library.
However, upon investigating a bit more, it seems that tusb_hal_nrf_power_event
calls TU_LOG
from inside an ISR.
Is the tu_printf
logging function expected to be ISR-safe? If so, it doesn't seem to be documented as a requirement.
The nRF52 Arduino core seems to have some issues with Serial1
being used from within an ISR.
Examining the state of the FreeRTOS task list suggests that it has gotten corrupted by turning into a loop, possibly due to calling non-ISR synchronization primitives from within an ISR.
from tinyusb.
Confirmed that LOG=2
with examples/device/hid_boot_interface
appears to function correctly, producing debug logs without deadlocking. I'll open an issue with the Arduino library.
I would still like some clarification about whether tu_printf
is expected to be ISR-safe.
from tinyusb.
Is the tu_printf logging function expected to be ISR-safe? If so, it doesn't seem to be documented as a requirement.
The nRF52 Arduino core seems to have some issues with Serial1 being used from within an ISR.
Yes it should be ISR safe, while documentation is a bit lacking...
Meanwhile even for built-in logging interrupt lock is also missing:
Line 49 in ccc7a36
from tinyusb.
Related Issues (20)
- `tud_cdc_rx_cb` callback is never called. HOT 7
- MAX3421 (host) and NAK handling HOT 1
- Add a check to see if device ID is correctly mapped before accessing it HOT 5
- Debug logging options not enabled by tusb_config.h, ep_dir_string not defined HOT 5
- Plug in two devices at once, no devices found, panic HOT 7
- unredistributable *.ld files under non-free license HOT 9
- dcd_rusb2.c MSC enum error HOT 5
- Losing half of the bandwidth when receiving data by hid set-report transfer. HOT 2
- support wch ch32v/f full usb host
- DWC2: usbd_edpt_close() does not free TX FIFO RAM HOT 5
- WebUSB example crash when a max size packet and a ZLP received
- Support ESP32-S3 USB Host
- Testing branch for functionality preview
- EHCI driver attempts transfers exceeding the max transfer size
- Race condition/memory corruption on CH32V307 HOT 4
- Device Manufacturer / Product strings are truncated for some devices when certain (other) devices are connected HOT 1
- Interrupt lock missing in debug log functions HOT 3
- Settings CFG_TUD_MEM_SECTION causes a section type conflict HOT 3
- webserver NCM mode can't work HOT 18
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinyusb.