kopia lustrzana https://github.com/espressif/esp-idf
b8dc48ab18
Removed as much branching (if statements) from the gpio_intr_service ISR, as possible and split the while loop into two. Also forced writing the two status*_w1tc variables only once, instead of every time after calling the external function hooks. The measurements below, was done using the following tools: Toolchain version: crosstool-ng-1.22.0-80-g6c4433a Compiler version: 5.2.0 Here follows a comparison of the gpio_intr_service ISR's execution time, using a DS1054 oscilloscope. All the time spent calling external functions, via the function pointers gpio_isr_func[gpio_num].fn, were disregarded. With OPTIMIZATION_FLAGS = -Og, 1.34 uSeconds faster: 3.22 uSec (with this patch) 4.56 uSec (with commit |
||
---|---|---|
.. | ||
app_trace | ||
app_update | ||
asio | ||
aws_iot | ||
bootloader | ||
bootloader_support | ||
bt | ||
coap | ||
console | ||
cxx | ||
driver | ||
efuse | ||
esp-tls | ||
esp32 | ||
esp_adc_cal | ||
esp_event | ||
esp_http_client | ||
esp_http_server | ||
esp_https_ota | ||
esp_https_server | ||
esp_ringbuf | ||
espcoredump | ||
esptool_py | ||
ethernet | ||
expat | ||
fatfs | ||
freemodbus | ||
freertos | ||
heap | ||
idf_test | ||
jsmn | ||
json | ||
libsodium | ||
log | ||
lwip | ||
mbedtls | ||
mdns | ||
micro-ecc | ||
mqtt | ||
newlib | ||
nghttp | ||
nvs_flash | ||
openssl | ||
partition_table | ||
protobuf-c | ||
protocomm | ||
pthread | ||
sdmmc | ||
smartconfig_ack | ||
soc | ||
spi_flash | ||
spiffs | ||
tcp_transport | ||
tcpip_adapter | ||
ulp | ||
unity | ||
vfs | ||
wear_levelling | ||
wifi_provisioning | ||
wpa_supplicant | ||
xtensa-debug-module |