mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
dd585f9e9d
- `gpio_ll_toggle()` now is race-free - avoid using a look up table but branch to the two different registers in the `gpio_ll*()` functions - in most cases the GPIO port is a compile time constant and the dead branch is eliminated by the optimizer, making this vastly more efficient - some MCUs do only have a single port, in which case `GPIO_PORT_NUM(port)` is known to return `0` even if `port` is not known, resulting in one of the branch being eliminated as dead branch no matter what - in case it really is unknown at compile time which port to work on, the branch can still be implemented efficiently by the compiler e.g. using a conditional move; likely more efficient than fetching a value from the look up table. |
||
---|---|---|
.. | ||
adc_arch_esp32.c | ||
adc_arch_esp32c3.c | ||
adc_arch_esp32s2.c | ||
adc_arch_esp32s3.c | ||
adc.c | ||
can.c | ||
cpuid.c | ||
dac.c | ||
flashpage.c | ||
gpio_arch_esp32.c | ||
gpio_arch_esp32c3.c | ||
gpio_arch_esp32s2.c | ||
gpio_arch_esp32s3.c | ||
gpio_ll_irq.c | ||
gpio_ll.c | ||
gpio.c | ||
hwrng.c | ||
i2c_hw.c | ||
Kconfig | ||
Makefile | ||
pm.c | ||
pwm.c | ||
rtt_hw_rtc.c | ||
rtt_hw_sys.c | ||
rtt.c | ||
sdmmc.c | ||
spi.c | ||
timer.c |