Allow `ENABLED`, `DISABLED`, `PIN_EXISTS`, and `BUTTON_EXISTS` to take multiple arguments. Also add:
- Alias `ANY(...)` for `!DISABLED(...)`
- Alias `ANY_PIN(...)` for `PIN_EXISTS(a) || PIN_EXISTS(b) ...`
- Alias `EITHER(A,B)` for `ANY(...)`
- Alias `ALL(...)` and `BOTH(A,B)` for `ENABLED(...)`
- `NONE(...)` for `DISABLED(...)`
Make timer definition in pin files for STM32 possible (#12874)
RemRam needs to redefine a particular timer to work correctly. The HAL did foresee this possibility and checks if the timer was already defined for either the stepper or temperature timer.
Prior to this commit the header file for the timers couldn't see those definitions in the pin file, but this commit will fix this.
Tested on an actual hardware to verify. (It wouldn't boot without it.)
Fix access to the DWT peripheral for STM32 HAL (#12434)
Access to the DWT peripheral for the `CYCCNT` register needs to happen before `main()`. The code needs to be called after the setup of the system clocks, so the right place is between the `premain()` and `main()` function of the STM32 Arduino core.
This patch moves the DWT access code to a new function, which is then placed between `premain()` and `main()`.