Initial bare-metal foundation for nRF52840 PTT-FHSS
- Fully open toolchain: arm-none-eabi-gcc inside Podman/Docker container - Platform-agnostic build via justfile (auto-detects podman vs docker) - CMake + Ninja build system with arm-none-eabi toolchain file - nRF52840 linker script and startup with full 64-entry vector table - Register access via typed bitfield unions (include/regs.h) - FHSS channel sequencer: AES-128-ECB PRNG over 40 channels (2402-2480 MHz) - Low-power sleep via SYSTEM_ON WFI + GPIOTE wakeup on button press - Vendor deps as shallow git submodules: nrfx, CMSIS_5, tiny-AES-c
This commit is contained in:
23
Dockerfile
Normal file
23
Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
ARG GCC_VERSION=13.2.rel1
|
||||
ARG TARGETARCH=amd64
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
wget xz-utils cmake ninja-build \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN case "${TARGETARCH}" in \
|
||||
amd64) _arch=x86_64 ;; \
|
||||
arm64) _arch=aarch64 ;; \
|
||||
*) echo "unsupported arch: ${TARGETARCH}" >&2 && exit 1 ;; \
|
||||
esac \
|
||||
&& wget -qO /tmp/gcc.tar.xz \
|
||||
"https://developer.arm.com/-/media/Files/downloads/gnu/${GCC_VERSION}/binrel/arm-gnu-toolchain-${GCC_VERSION}-${_arch}-arm-none-eabi.tar.xz" \
|
||||
&& tar -xf /tmp/gcc.tar.xz -C /opt \
|
||||
&& ln -s "/opt/arm-gnu-toolchain-${GCC_VERSION}-${_arch}-arm-none-eabi" /opt/arm-toolchain \
|
||||
&& rm /tmp/gcc.tar.xz
|
||||
|
||||
ENV PATH="/opt/arm-toolchain/bin:${PATH}"
|
||||
|
||||
WORKDIR /src
|
||||
Reference in New Issue
Block a user