Skip to content

feat(nxplpc): absorb FastLED#2988 LPC845 build scaffolding into fbuild #511

Description

@zackees

Context

FastLED/FastLED#2988 is a draft LPC845 bare-metal bring-up PR. To make the example compile, it currently checks several things into the FastLED example tree that should be owned by fbuild instead:

  • generated build_info.json / build_info_lpc845.json
  • copied CMSIS/NXP device headers such as LPC845.h, LPC845_features.h, system_LPC845.h, and CMSIS compiler headers
  • a local platformio.ini for platform = nxplpc, board = lpc845, framework = cmsis
  • a symlinked lib/FastLED and hand-written src/main.cpp

There is already local staging in fbuild for the right shape: crates/fbuild-build/src/nxplpc/ has linker/startup assets, per-MCU defines, device_headers/, and a temporary arduino_stub/ surface. This issue tracks landing the fbuild-side part so FastLED#2988 can shrink back to FastLED source/platform changes and not carry generated metadata or vendored CMSIS blobs in an example.

Proposal

Move the build-system responsibilities from FastLED#2988 into fbuild's NXP LPC path:

  • materialize LPC804/LPC845 device headers from fbuild-owned assets or package data into the nxplpc build include path
  • provide the temporary Arduino-compatible stub surface needed for FastLED compilation until zackees/ArduinoCore-LPC8xx is vendored
  • ensure nxplpc builds define the symbols FastLED expects, including ARDUINO, ARDUINO_ARCH_NXPLPC, ARDUINO_LPC845 / ARDUINO_LPC804, ARDUINO_VARIANT, CPU_LPC845M301JBD48 / CPU_LPC804M101JDH24, F_CPU, LPC845 / LPC804, __NXPLPC__, and the chip-specific CMSIS macro
  • emit build_info.json / build_info_<env>.json from the nxplpc build rather than requiring checked-in files; include prog_path, tool paths, and the aliases block used by FastLED tooling
  • produce firmware.elf, firmware.bin, and a linker map for LPC845/LPC804 from the existing startup/linker path
  • add a regression fixture that builds the PR #2988-style FastLED LPC845 blink without local CMSIS headers or checked-in build metadata

Acceptance criteria

  • fbuild build succeeds for an LPC845 FastLED blink fixture using platform = nxplpc, board = lpc845, and no copied CMSIS headers in the example tree.
  • The build output contains firmware.elf, firmware.bin, firmware.map, build_info.json, and build_info_lpc845.json with correct nxplpc tool aliases.
  • FastLED source includes can resolve LPC845.h / fsl_device_registers.h through fbuild-provided include paths.
  • lpc8xx: fix build errors on bare-metal. WIP example for LPC845. FastLED#2988 no longer needs to commit examples/BlinkLPC845/build_info*.json or the large examples/BlinkLPC845/include/ CMSIS blob.
  • The temporary fbuild Arduino stub is clearly marked as a bridge until zackees/ArduinoCore-LPC8xx is vendored and replaces the hand-rolled shim.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions