What ticktrace is for.
ticktraceis a complete bare-metal toolkit for the Raspberry Pi RP2350 (Cortex-M33), written entirely in ARM Thumb-2 assembly. Every driver, every example, every test fixture is plain assembly — no C compiler in the firmware path, no hidden ABIs, no autogenerated glue.
The motto, every cycle matters, is meant seriously. When you have 520 KB of RAM and need to drive USB, an LED, and a timer at the same time, knowing what each cycle costs stops being academic. Reading assembly turns “magic” into mechanism.
The project ships three things together: an SDK you can drop into your own project, a book that takes a reader from what is a registerall the way to multicore, and a desktop studio that wraps the toolchain in a friendly UI without lying about what it’s doing.
▸ Project & ownership
ticktrace™ is owned and trademarked by Amken LLC. The website is hosted at www.ticktrace.io. Source lives on GitHub at ticktrace-sdk/rp-asm.
▸ License
ticktrace is dual-licensed:
- AGPL-3.0-or-later— open-source use, including in open-source firmware, hobby projects, research, and education.
- Commercial licensefrom Amken LLC — for proprietary firmware that doesn’t want AGPL’s share-alike terms.
▸ Design notes
- Atomic register aliases. Every peripheral write uses the +0x2000 SET / +0x3000 CLR / +0x1000 XOR aliases instead of read-modify-write. One
STR, two cycles, no scratch, no ISR race. - Pad isolation. RP2350 pads come out of reset with
ISO=1(datasheet §9.3.1). Every driver that touches a pin clearsISO|ODvia thePADS_BANK0CLR alias. - Pure-asm with AAPCS.All drivers are plain Thumb-2 functions that follow AAPCS so they compose — from asm, from C via the optional bridge, or from
no_stdRust via therp-asm-syscrate.
// contact
File issues, feature requests, and hardware-verification reports on GitHub Issues ↗. Commercial licensing inquiries go through Amken LLC ↗.