feat(apollo3): add build orchestrator, toolchain, and board definitions#14
feat(apollo3): add build orchestrator, toolchain, and board definitions#14
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (15)
📝 WalkthroughWalkthroughThis pull request introduces complete build support for the Apollo3 platform (Ambiq Micro ARM Cortex-M4F MCUs). It adds a new build orchestrator, MCU configuration, ARM GCC8 toolchain package, Apollo3 cores framework manager, and board definitions for SparkFun-based Apollo3 boards. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Orchestrator as Apollo3Orchestrator
participant Toolchain as ArmGcc8Toolchain
participant Cores as Apollo3Cores
participant Compiler as ArmCompiler
participant Linker as ArmLinker
User->>Orchestrator: build(BuildParams)
activate Orchestrator
Orchestrator->>Toolchain: ensure_installed()
activate Toolchain
Toolchain-->>Orchestrator: toolchain_path
deactivate Toolchain
Orchestrator->>Cores: ensure_installed()
activate Cores
Cores-->>Orchestrator: cores_installed
deactivate Cores
Orchestrator->>Cores: get_variant_dir(variant)
Cores-->>Orchestrator: variant_path
Orchestrator->>Cores: read_mbed_response_file()
Cores-->>Orchestrator: defines, includes, ld_flags
Orchestrator->>Compiler: new(config, defines, includes)
activate Compiler
Compiler-->>Orchestrator: compiler_ready
deactivate Compiler
Orchestrator->>Compiler: compile_sources()
Compiler-->>Orchestrator: object_files
Orchestrator->>Cores: get_mbed_lib(variant)
Cores-->>Orchestrator: libmbed_os.a
Orchestrator->>Linker: new(toolchain, config)
activate Linker
Linker-->>Orchestrator: linker_ready
deactivate Linker
Orchestrator->>Linker: link(objects, libraries, script)
Linker-->>Orchestrator: output_binary
deactivate Orchestrator
User->>User: binary ready
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes The changes introduce a substantial new platform with significant logic density across multiple crates. The Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
New Features
Documentation