Skip to content

Commit 0446b73

Browse files
authored
Add protocol-explicit upload.tool properties required for pluggable discovery compatibility (#933)
A new flexible and powerful "pluggable discovery" system was added to the Arduino boards platform framework. This system makes it easy for Arduino boards platform authors to use any arbitrary communication channel between the board and development tools. Boards platform configurations that use the old property syntax are automatically translated to the new syntax by Arduino CLI: https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration > For backward compatibility with IDE 1.8.15 and older the previous syntax is still supported This translation is only done in platforms that use the old syntax exclusively. If `pluggable_discovery` properties are defined for the platform then the new pluggable discovery-style `upload.tool.<protocol_name>` properties must be defined for each board as well. This platform includes a "UF2 Devices" discovery tool for `uf2conv` protocol ports. This tool now uses the modern Arduino pluggable discovery system. `pluggable_discovery` properties were added to `platform.txt` in order to configure the Arduino development tools to use this pluggable discovery tool. The `upload.tool.<protocol_name>` properties in `boards.txt` were not updated at that time. Global properties of that name were added to platform.txt, but this approach is not provided for by the Arduino Platform specification: https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration > A specific upload.tool.<protocol_name> property should be defined for every board in boards.txt: Those missing properties caused uploads to fail for users of the recent versions of Arduino IDE and Arduino CLI with an error of the form: Error during Upload: Property 'upload.tool.<protocol_name>' is undefined (where `<protocol_name>` is the protocol of the selected port, if any) It is also important to provide compatibility with versions of Arduino development tools from before the introduction of the modern pluggable discovery system. For this reason, the old style `<board ID>.upload.tool` properties are retained. Old versions of the development tools will treat the `<board ID>.upload.tool.<protocol_name>` properties as an unused arbitrary user defined property with no special significance and the new versions of the development tools will do the same for the `upload.tool` properties.
1 parent c3da4ad commit 0446b73

File tree

3 files changed

+162
-9
lines changed

3 files changed

+162
-9
lines changed

0 commit comments

Comments
 (0)