Pre-Release v1.0.1-beta.1
Pre-release
Pre-release
Second prerelease of the 1.0.1 line, promoting 1.0.1-alpha.1. This beta adds a
profiling execution path, fixes three RP2040 PIO conformance bugs, eliminates a
pinned-heap memory leak, and lands exhaustive test coverage that now runs fully
offline.
No breaking changes — the public API remains stable under
Semantic Versioning. Everything from
v1.0.0 still applies.
✨ Added
- Profiling path. A separate
RunProfiledexecution loop plus exception hooks lets
callers observe execution (instruction flow, faults) without paying the cost on the
normal hot path.
🐛 Fixed
- PIO autopull late-producer. An
OUTstalled on autopull is no longer skipped when
the TX FIFO is fed late;CheckSmWaitnow re-arms the stall per FIFO event instead of
advancing the PC past the instruction. - PIO FDEBUG bit layout.
TXOVERis reported on bits[19:16]andRXUNDERon
[11:8](TRM §3.7);RXUNDERon empty-RX reads is now reported at all. - PIO autopush overflow. Autopush into a full RX FIFO now stalls and retains the
captured word (completing the push once space frees up) instead of silently dropping it
(datasheet §3.5.4.2). - Pinned-heap memory leak.
RandomAccessMemorybacked a pinned managed array with no
finalizer, leaking ~2.5 MB of non-collectable heap per discarded machine. It is now
backed byNativeMemorywith a finalizer and an idempotentDispose, keeping the
multi-MB RAM/Flash/BootROM blocks off the GC heap.
🧪 Tests
- Exhaustive PIO instruction-set coverage (every JMP condition, IN/OUT sources, dests and
shift directions, MOV ops, PUSH/PULL variants, IRQ/WAIT, side-set, autopull/autopush,
FIFO join, clock divider, wrap, multi-SM, NVIC routing) plus regressions for the fixes. RandomAccessMemorycorrectness and a no-leak stress test.- MicroPython and CircuitPython firmware are now embedded in the test assembly, so the
integration suite runs fully offline with no download flakiness.
📦 Packages
dotnet add package RP2040Sharp --version 1.0.1-beta.1
dotnet add package RP2040Sharp.TestKit --version 1.0.1-beta.1Full changelog: https://github.com/PyMCU/RP2040Sharp/blob/master/CHANGELOG.md