-
Notifications
You must be signed in to change notification settings - Fork 505
Add RP2350B generic/Pimoroni PGA2350 support #2433
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
Conversation
319102c
to
cc9cb20
Compare
@NollKollTroll, this PR should make the GPIOs > 39 work for everything but PIO-based usage (i.e. no Tone(40) or SerialPIO(45, 46)). The PSRAM should also come up automatically w/the Pimoroni PGA2350. If you have a change, could you give this a try? I still haven't found my wirewrap pen to start futzing w/the PGA2350... |
I am trying to get it working on my end, will have to learn how to insert the PR into my pulled source. Will be back when I have tested the fixes. |
Failing to understand how to properly select/load the modified PR-code in the arduino-IDE, I finally managed to make a fake 4.0.2 in the .arduino15 tree that kinda works. Don't know what is my fault and what is the failings of the PR-code...
|
Tried again, and seem to have installed a correctly updated 4.0.2 since I get new menu options, like PSRAM_CS. Choosing Choosing |
Add support for the extra 16 GPIO pins in the menus and core. Clean up Generic RP2350 PSRAM ("none" is valid) and flash (other than 16MB) options. Add extra GPIO<->peripheral connections Add Pimoroni PGA2350 RP2350B-based board
Weird and reproducible on the boot2 failure. The Platform.IO build succeeds which really seems odd but the Arduino IDE doesn't. I any case, the latest push does fix that (tested). Thx! |
Pins 32-47 can be used for PIO
New fields in SDK 2 need to be copied when making custom pio_program_t
When async_context_threadsafe_background_execute_sync() is invoked from the non‑owner core, the helper worker used to be queued as a async_when_pending_worker_t. Under heavy IRQ load the “pending” flag could be lost, leaving the semaphore unreleased and the caller blocked indefinitely (issue earlephilhower#2433). Changes Replace the helper’s worker field with async_at_time_worker_t and adapt handle_sync_func_call() accordingly. Queue the helper via async_context_add_at_time_worker_in_ms(..., 0) instead of the previous add_when_pending_worker/set_work_pending pair. Drop the now‑unnecessary async_context_remove_when_pending_worker() call inside the handler; at‑time workers self‑remove after execution. .gitignore: ignore .qodo workspace directory. Impact The execute‑sync path is now race‑free: the helper worker is guaranteed to run once, release the semaphore, and return the result to the caller, eliminating the sporadic deadlock observed in multicore scenarios. Co‑authored‑by: Goran Miskovic <[email protected]> Fix contributed for raspberrypi/pico-sdk/issues/2433
Add support for the extra 16 GPIO pins in the menus and core.