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. |
||
---|---|---|
.. | ||
esp_ble_nimble/syscfg | ||
esp_idf_api | ||
freertos | ||
sys | ||
adc_arch_private.h | ||
adc_arch.h | ||
c11_atomics_compat_cpu.hpp | ||
can_esp.h | ||
can_params.h | ||
cpu_conf_esp32.h | ||
cpu_conf_esp32c3.h | ||
cpu_conf_esp32s2.h | ||
cpu_conf_esp32s3.h | ||
cpu_conf.h | ||
gpio_arch.h | ||
gpio_ll_arch.h | ||
irq_arch.h | ||
newlib.h | ||
periph_cpu_esp32.h | ||
periph_cpu_esp32c3.h | ||
periph_cpu_esp32s2.h | ||
periph_cpu_esp32s3.h | ||
periph_cpu.h | ||
rtt_arch.h | ||
sdkconfig_esp32.h | ||
sdkconfig_esp32c3.h | ||
sdkconfig_esp32s2.h | ||
sdkconfig_esp32s3.h | ||
sdkconfig.h | ||
syscalls.h |