1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

27 Commits

Author SHA1 Message Date
Marian Buschsieweke
97b91b4f8f
boards/stm32: use GPIO LL for LEDs
This fixes a race in `LED<NUM>_TOGGLE`, which is a read-copy-write
operation. Any access to a GPIO pin on the same GPIO port that
happens concurrently could result in data corruption. Using the
GPIO LL API, which is thread-safe, fixes the issue.

Note: The used GPIO LL functions will work even in when the GPIO LL
      module is not used.
2024-08-02 09:55:24 +02:00
Joshua DeWeese
fe3a6ba462 boards/common/nucleo144: revert waitespace changes
This commit reverts the whitespace changes from commit
53d53d8cc8
2024-04-23 11:13:48 -04:00
MrKevinWeiss
e0fdc3c16c
*Kconfig*: Modify Kconfig to remove dep model 2024-03-27 10:28:12 +01:00
Ollrogge
53d53d8cc8 boards/nucleo-u575zi-q: Add support 2024-03-01 11:18:18 +01:00
Marian Buschsieweke
043e8cc88e
boards,sys/arduino: major clean up
- Rename all `arduino_pinmap.h` to `arduino_iomap.h`
    - An empty `arduino_pinmap.h` that just includes `arduino_iomap.h`
      is provided for backward compatibility
    - Move all info from `arduino_board.h` into the new file as trivial
      macros, so that they can also be used outside of sketches
    - The new name reflects the fact not just pin mappings, but also
      other I/O features such as PWMs are mapped
- Drop all `arduino_board.h`
    - `arduino_board.h` and `arduino_iomap.h` now provide the exact
      same information, just in a different format
    - a generic `arduino_board.h` is provided instead that just
      uses the info in `arduinio_iomap.h` and provides them in the
      format the code in `sys/arduino` expects it
- Add fine grained features to indicate for mappings
    - availability of mappings for analog pins, DAC pins, PWM pins,
      UART devices, SPI/I2C buses to the corresponding RIOT
      identification can now be expressed:
        - `arduino_pins`: `ARDUINO_PIN_0` etc. are available
        - `arduino_analog`: `ARDUINO_A0` etc. are available
        - `arduino_pwm`: `ARDUINO_PIN_13_PWM_DEV` etc. are available
        - `arduino_dac`: `ARDUINO_DAC0` etc. are available
        - `arduino_uart`: `ARDUINO_UART_D0D1` or similar are available
        - `arduino_spi`: `ARDUINO_SPI_ISP` or similar are available
        - `arduino_i2c`: `ARDUINO_I2C_UNO` or similar are available
    - mechanical/electrical compatibility with specific form factors
      can now be expressed as features:
        - `aruino_shield_nano`: Arduino NANO compatible headers
        - `aruino_shield_uno`: Arduino UNO compatible headers
        - `aruino_shield_mega`: Arduino MEGA compatible headers
        - `aruino_shield_isp`: ISP header is available

This provides the groundwork to implement shield support as modules
that can rely on the I/O mappings, rather than having to provide a
configuration per board.
2023-06-26 17:24:07 +02:00
Karl Fessel
05f114d0af doc: fix unbalaced grouping
- most were trivial
    - missing group close or open
    - extra space
    - no doxygen comment
- name commad might open an implicit group
    this hould also be implicit cosed but does not happen somtimes
- crazy: internal declared groups have to be closed internal
2022-09-14 15:05:25 +02:00
Marian Buschsieweke
1fd9913293
boards/common/stm32: clean up LED definitions
Let boards only define the port and pin number of each LEDs. The common
definitions in `stm32_leds.h` will provide `LED<x>_ON`, `LED<x>_OFF`,
`LED<x>_TOGGLE`, `LED<x>_PIN`, `LED<x>_MASK` and `LED<x>_PORT`.

In addition to code de-duplication, this also makes it easier to use
LEDs in GPIO LL, which can be beneficial for super low overhead
debugging output - e.g. when a bug is timing sensitive and `DEBUG()`
would spent to much time for stdio to reproduce a bug.
2022-08-08 23:35:06 +02:00
Benjamin Valentin
468ea89953 boards: drop LED init
This is handled by periph_init_leds now
2022-02-18 14:35:43 +01:00
MrKevinWeiss
02a2de4916
cpu/stm32: Add Kconfig dependency modeling 2021-07-02 15:11:05 +02:00
de37259c64
boards/nucleo-*: put Kconfig HSE/LSE clock config in common 2021-01-20 09:16:46 +01:00
7fbfb92f03
boards/stm32gx: move Kconfig clock config to cpu 2020-10-29 23:00:44 +01:00
cbdb0a3b09
boards/nucleo144: adapt default on-board LEDs for stm32l522ze 2020-10-23 18:21:51 +02:00
4f8f1bc6f2
boards/common/nucleo: model common features in Kconfig 2020-07-16 11:34:02 +02:00
7044c95ebf
boards/nucleo-144: fix l4r5zi LED0 pin 2019-07-08 09:09:48 +02:00
Rotzbua
d606c11d11 tests/leds: initialize led0 by default
fix unexpected behavior:
reference #9949
reference #10294

fix redefinition for AUTO_INIT_LED0
2019-02-27 13:09:29 +01:00
ac00b81e24 boards/nucleo-l496zg: add initial support 2018-05-15 11:56:51 +02:00
70802fc652 boards*: cleanup doxygen
- replace brief with name where required
- remove some unwanted empty lines
- fix missing closing doxygen name block
2018-04-18 12:08:56 +02:00
f8744e7b27 boards/common: move nucleo doxygen group to boards group 2018-01-27 18:48:24 +01:00
Hauke Petersen
fa0f4be203 boards/nucleo144: always (auto-) initialize LED0 2018-01-24 10:24:23 +01:00
Hauke Petersen
c6c0b752c3 boards/nucleo: use shard board.h and board.c files 2018-01-24 10:24:23 +01:00
Hauke Petersen
b4f497f5e2 boards/nucleo: factored out nucleo64 common 2018-01-24 10:23:17 +01:00
906a9e3a02 boards/common/nucleo: add missing 'brief' description 2018-01-18 10:23:34 +01:00
ce66117dc0 boards/common/nucleo: use @name instead of @brief 2018-01-05 15:33:03 +01:00
5b5c99c27b boards: fix doxygen typo on arduino 2018-01-05 15:32:20 +01:00
smlng
b1df79a45b boards: fix doxygen groups for STM nucleo boards 2017-12-15 17:06:29 +01:00
smlng
39a5576aa7 boards/common: enhance doxygen for stm nucleo144 2017-12-15 10:26:48 +01:00
Hauke Petersen
f1135af3d7 boards/nucleo144: move shared code to common/nucleo144 2017-11-30 10:26:35 +01:00