ticktrace
// about

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.

Read the license details →

▸ 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 clears ISO|OD via the PADS_BANK0 CLR 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_std Rust via the rp-asm-sys crate.

// contact

File issues, feature requests, and hardware-verification reports on GitHub Issues ↗. Commercial licensing inquiries go through Amken LLC ↗.