ESP32 UART event queue
Ladislav Vaiz
spam na nagano.cz
Sobota Červenec 1 18:52:27 CEST 2023
On 01.07.2023 17:54, Petr Labaj wrote:
> V Unixu se tak musí řešit, protože používáme obsluhu zařízení na
> úrovni systému.
> Tedy nemáme přístup k HW, ale jen k volání nějakých systémových služeb.
>
> Programování ESP se dělá podobně?
> Ptám se asi blbě, ale nikdy jsem na žádném ESP nic neprogramoval.
>
> My, co programujeme skutečná MCU, tak si prostě v obsluze přerušení od
> UARTu
> obsloužíme Tx i Rx frontu, obsluhu chyb a kdoví co ještě.
> U ESP to takto nejde? Tam není obsluha IRQ pod kontrolou programátora?
Mohu mluvit jen za programování pomocí ESP-IDF, což je framework, který
poskytuje určitou abstrakci. Člověk se při konfiguraci setká s pojmy
jako IRQ nebo DMA, ale stačí mu používat vysokoúrovňové funkce. Že by
někdo psal "void interrupt" nebo ISR(blabla), jsem nikde neviděl, ale
nevylučuju, že i to nějak jde. Nepotřeboval jsem to.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/uart.html
Obecně je ESP-IDF dost svázaný s RTOS a jeho tasky, tak optimální bude
použít jeho prostředky. Například přes jednu frontu:
https://www.freertos.org/FreeRTOS_Support_Forum_Archive/August_2011/freertos_How_to_wait_on_multiple_queue_4674588.html
Pak je tam ještě VFS systém
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/storage/vfs.html#non-socket-vfs-drivers
.
Ten slučuje objekty různých typů, aby se s nimi pracovalo shodně. Bude
tam nějaká režije a pravděpodobnost chyb, ale vše má své plusy a mínusy.
L.
Další informace o konferenci Hw-list