Skip to content

Pre-Release v1.0.1-beta.1

Pre-release
Pre-release

Choose a tag to compare

@begeistert begeistert released this 12 Jun 17:12
0918b54

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 RunProfiled execution 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 OUT stalled on autopull is no longer skipped when
    the TX FIFO is fed late; CheckSmWait now re-arms the stall per FIFO event instead of
    advancing the PC past the instruction.
  • PIO FDEBUG bit layout. TXOVER is reported on bits [19:16] and RXUNDER on
    [11:8] (TRM §3.7); RXUNDER on 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. RandomAccessMemory backed a pinned managed array with no
    finalizer, leaking ~2.5 MB of non-collectable heap per discarded machine. It is now
    backed by NativeMemory with a finalizer and an idempotent Dispose, 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.
  • RandomAccessMemory correctness 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.1

Full changelog: https://github.com/PyMCU/RP2040Sharp/blob/master/CHANGELOG.md