-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
6.0.0 not working for me on Fomu #3841
Comments
I built circuitpython at |
Commit |
@xobs would you like to take a look at this? |
Sure, let me take a look at it this evening. |
I have it hooked up to an EVT board, and it's looking like it's not properly clearing interrupts. In particular, whenever I break into the debugger it's calling |
It's leaking stack somehow. Every time an interrupt hits, the stack pointer is moved up by 160 bytes. |
There were two issues at play:
|
Github appears to be broken, and can't create a pull request: Please apply xobs@f3e5441 and xobs@2f95cc9 to fix this issue |
During an interrupt handler, interrupts are implicitly disabled. They will be re-enabled when the interrupt handler returns. Due to some changes that were made, varous calls will re-enable interrupts after they're finished. Examples of this include calling `CALLBACK_CRITICAL_END` and getting the number of ticks with `port_get_raw_ticks()`. This patch prevents this from happening by doing two things: 1. Use standard calls in `port_get_raw_ticks()` to disable and re-enable interrupts, preventing nesting issues, and 2. Increase the nesting count inside `isr()`, reflecting the implicit call that is made by hardware when an interrupt is handled This helps to address #3841. Signed-off-by: Sean Cross <sean@xobs.io>
The XIP SPI flash on Fomu is slow, which results in certain operations taking a long time. This becomes a problem for time-critical operations such as USB. Move various calls into RAM to improve performance. This includes the call to __modsi3 and __udivsi3 which are used by the supervisor handler to determine if periodic callbacks need to be run. This finishes fixing #3841 Signed-off-by: Sean Cross <sean@xobs.io>
Ditto for me, neither 6.1.0 or 6.2.0-beta.1, they get to the end, no errors show, but no rainbow and fomu flashes red, no usb drive appears
dfu-util -l says
|
@xobs can you make a PR now? If you get the unicorn again please share the full url. I get this if I'm on the wrong base branch. |
I think this was fixed by #3878 (a long time ago). |
I downloaded
adafruit-circuitpython-fomu-en_US-6.0.0.dfu
fromhttps://circuitpython.org/board/fomu/
and installed it on Fomu with dfu-util 0.9.The RGB LED gives a nice pinkish breathe/blink, but no tty device shows up in /dev, neither ttyUSB nor ttyACM.
I've tried with foboot v2.0.3 and v2.0.3-55-ge928b8, two different Fomus (both PVT), with the same results.
Host is Ubuntu 20.04.
dmesg
just showsUSB disconnect, device number xxx
.adafruit-circuitpython-fomu-en_US-5.3.1.dfu
works correctly on the same Fomus.The text was updated successfully, but these errors were encountered: