Use the Pico SDK's board definitions in Debug Probe firmware - #209
carlwhamilton wants to merge 8 commits into
Conversation
Added "_CONFIG" to the include guards for the board configuration headers. This will help avoid collisions and confusion with other, similarly named headers.
The small amount of logic to select and configure the target board has moved to a new, dedicated header: board_config.h. This will allow future changes to board selection and configuration to be more easily isolated and prevent probe_config.h from being polluted by board-related shenanigans.
This simplifies building the Debug Probe firmware for any board supported by the Pico SDK's board idenfication and configuration framework. If no PICO_BOARD value is provided on the cmake command line, firmware will be built for the `debug_probe` board defined in the SDK.
Building for the Debug Probe now requires the debug_probe board definition from the Pico SDK, which was introduced in SDK version 2.3.0. Unfortunately, performing this version test requires some gyrations in pico_sdk_import.cmake to test the SDK's version before including the standard SDK init file. Changing pico_sdk_import.cmake is generally discouraged, but I couldn't find a better way to produce a helpful error when building against an outdated SDK.
The firmware's default target board, debug_probe, requires Pico SDK 2.3.0 or newer. Therefore, this documentation for this requirement has been hoisted into the "Hacking" section.
Resolved stacked commit mayhem.
|
I guess this PR also has a slight impact on when an invalid-board-selection error gets raised - prior to this PR it would get flagged at cmake configure-time (in |
🤔 🤔 🤣 |
That would depend on the nature of the unsupported board. If one tried to configure for a board that the SDK doesn't support (e.g. debug_problem), the failure happens during CMake configuration time. If somebody thinks they can compile the firmware for any old board (e.g. the SDK's none board), then yes, the failure occurs at compile time. I'm new to all of this, so I don't fully appreciate what the expectations should be. I'm happy to rework this change if people feel strongly that the failure should happen during configuration. |
Use the Pico SDK's board definitions (which includes the debug_probe as of version 2.3.0) to configure the build and behavior of the Debug Probe firmware.
Unfortunately, this change affects the way firmware is configured for the Pico and Pico 2 boards. This is covered in the updated README.md, but could trip up users. The new method, however, is probably more inline with other projects.
Closes #210
lurch EDIT: According to the comments in #210 , this shouldn't be merged until after #208 has been merged.