- Notifications
You must be signed in to change notification settings - Fork 0
Home
!!Dean edited this page Dec 18, 2025 · 18 revisions
- Getting started: we're compiling Nim to .elf and .bin; but it doesn't yet appear to run.
- start writing/wrapping drivers:
- RTC
- GPIO
- see if we can get a gdb debug channel (USB? SWD? ...)
- ✓ blink an LED (commit 3d4349df)
- ✓ establish a bootloader (Adafruit nRF52-derived bootloader was pre-installed
- ✓ get
arm-none-eabi-gcccross-compile build working. - ✓ get an SVD file for the nRF52840, run minisvd2nim on it.
- Create a real-time embedded software project in Nim.
- Use the Awsm framework for event-driven concurrency.
- Create a hardware-accelerated scheduler.
- Stream digital voice over LoRa radio packets (not necessarily real time).
- Hardware
- Armv7m Architecture Reference Manual
- ARM Cortex-M4 Technical Reference Manual r0p1
- Nordic nRF52840 Product Specification v1.11
- SDK: nRF5_SDK_17.1.0_ddde560.zip
- RAK4631 UF2 Bootloader
- Notes:
- git 2.51 or later
- github repo
- Nim 2.2.0 or later
- ARM GNU Toolchain Version 14.3.Rel1
- pick a file from the section "ARM AArch32 bare-metal target (arm-none-eabi)"
- provides a GCC 14.3 cross-compiler
- nim has better interop with gcc than clang
- Coding style guidance (in order)(aberration tolerated when consistent or appealing):
- nph; let the tool do the formatting
- nep1
- Status style guide