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

23 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
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
MrKevinWeiss
17cce015d4
treewide/stm32: Make CLOCK_HS* configurable 2022-11-03 11:37:28 +01: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
5d111e71aa boards: drop board_init() from board.h 2022-02-25 15:08:58 +01:00
Fabian Hüßler
9163d78910 boards: add VBAT for stm32 based boards with ADC 2022-02-21 10:49:43 +01:00
4877155e23
boards: unify user button defines 2021-12-20 11:39:17 +01:00
39e06babf5
boards/stm32: use generic clk_conf.h header 2020-10-27 08:44:56 +01:00
95fb362a5c
boards/stm32f4xx: use 180MHz default clock header 2020-10-06 22:07:19 +02:00
721625011e
boards/stm32f4*: use new clock configuration scheme 2020-10-06 16:10:05 +02:00
hugues
0943d12bb1 boards/ublox-c030-u201: declare adc_config[] directly in periph_conf.h 2020-08-27 03:56:26 +02:00
23d5e9202d
ublox-c030-u201: remove obsolete spi_divtable 2020-08-18 16:55:10 +02:00
97f98dcace
boards/stm32: remove useless ifdef around DMA config 2020-05-25 13:23:20 +02:00
709f576d4a
ublox-c030-u201: Add DMA config for SPI 2020-05-25 11:42:12 +02:00
d8ec0b292f
boards/stm32f4: Set DMA_STREAM_UNDEF for UART DMA
This PR sets the DMA configuration for the UART peripherals on the
stm32f4 boards to the undef value to disable the DMA. This to prevent
from accidentally configuring the DMA to stream 0 channel 0 when
enabling DMA.
2020-05-20 08:49:22 +02:00
Dylan Laduranty
a33e61e997 boards/stm32: update to use generic uart_hw_fc module 2020-03-10 14:34:11 +01:00
Yannick Gicquel
d37adee32d boards/stm32-based: allow SPI signals routed on multiple alternate functions
There is no hardware limitation for custom boards based on STM32 to uses
SPI bus with signals coming from different PORT and alternate functions.

This patch allow alternate's function definition per pin basis, thus enable
the support of SPI bus signals routed on differents PORT.

Signed-off-by: Yannick Gicquel <ygicquel@gmail.com>
2019-10-25 06:27:41 +02:00
Benjamin Valentin
8af04cd939 boards: make use of ARRAY_SIZE macro 2019-08-06 19:43:54 +02:00
3c00d41764
boards/ublox-c030-u201: use common timer configuration
This also requires to include the STM32 shared include directory
2019-08-05 15:00:12 +02:00
7853ca0108
boards/stm32*: remove useless RTC_NUMOF defines 2019-08-05 11:08:53 +02:00
dylad
4276c12be0 board/ublox-c030-u201: add periph_conf to new I2C
Signed-off-by: dylad <dylan.laduranty@mesotic.com>
2018-07-25 15:17:43 +02:00
Vincent Dupont
1f7703135d boards: add ublox c030-u201 2018-05-24 16:42:29 +02:00