Espressif-News: Neuerungen zu Zephyr und Amazon AWS

Im allmonatlichen Nachrichten-Roundup kündigt Espressif die Finalisierung der hauseigenen Verbindungsbibliothek für Amazon AWS an. Ausserdem betont das Unternehmen Erweiterungen im Bereich der Integration in das quelloffene Echtzeitbetriebssystem RTOS, das nun unter Anderem bessere Unterstützung für den Mehrkernbetrieb bietet.

Worum geht es hier?

Espressif’s ESP32-Serie kombiniert einen General Purpose-Mikrocontroller mit einem Radiotransmitter für – je nach Chip verschiedene – Funkstandards. Im Laufe der letzten Jahre arbeitet Espressif permanent an der Verbesserung des Softwareökosystems, um Entwicklern die Integration der Chips in Drittanbietersysteme wie AWS zu erleichtern.

AWS IOT-Konnektor nun final

Espressif bietet Nutzern von ESP-IDF mit esp-aws-iot seit einiger Zeit eine Bibliothek an, die sich um die Integration in Amazons AWS IOT Hub kümmert. Zur Erinnerung: es handelt sich dabei um eine Art MQTT-Broker auf Steroiden, der die Integration von IoT-Geräten in das AWS-Ökosystem erleichtert und sich nebenbei auch um Provisioning und Co kümmert.

(Bildquelle: Amazon, via https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html)

Neu ist, dass die unter https://github.com/espressif/esp-aws-iot/ bereitstehende Bibliothek ab Sofort den finalen Status erreicht hat – Änderungen an den APIs sollten nun seltener und behutsamer ausfallen. Ausserdem enthält das SDK – wie in der Abbildung gezeigt – auch amazon-eigene Bibliotheken wie coreMqtt und coreJSON.

(Bildquelle: Espressif, via https://www.espressif.com/en/news/AWS_IoT_Ref_eg_ESP32-C3)

Zum Zeitpunkt der Drucklegung unterstützt Espressif IDF in den Versionen 4.3 und 4.4; der Gutteil der core-Bibliotheken ist modular aufgebaut und soll so auch abseits des Gesamt-SDKs nutzbar sein.

AWS IOT-Konnektor mit neuen Beispielen

Autoren von Programmierbeispielen sind in einer undankbaren Lage: der Detailgrad der Beispiele ist permanenter Streitpunkt. Im Rahmen der Finalisierung des AWS IOT-Konnektors rüstete Espressif im Bereich Code Samples nach, und bietet nun unter Anderem ein “produktionsreifes” MQTT-Brokerbeispiel an (siehe https://github.com/espressif/esp-aws-iot/tree/master/examples/mqtt/tls_mutual_auth). Es unterscheidet sich von “Quick and Dirty-Hacks” unter Anderem durch die umfangreiche Fehlerbehandlung, die verschiedene Problemfälle abdeckt.
Wichtig ist, dass die Nutzung der AWS-Beispiele auf jeden Fall auch Konfigurationsmassnahmen im Backend voraussetzt. Weitere Informationen hierzu finden sich unter https://github.com/espressif/esp-aws-iot/blob/master/examples/README.md-

Erweiterung der Unterstützung für Zephyr

Die Linux Foundation leistet sich mit Zephyr seit einigen Jahren ein eigenes, komplett quelloffenes Echtzeitbetriebssystem – wichtig ist, dass Zephyr intern nicht unixoid aufgebaut ist. Sei dem wie es sei, unterstützt Espressif die Plattform seit einiger Zeit umfangreich.
Neuerung Nummero eins sind Erweiterungen im Bereich der unterstützten Peripheriegeräte. Zum Zeitpunkt der Abfassung dieses Artikels präsentiert sich die Lage wie in der Abbildung gezeigt.

(Bildquelle: Espressif)

Im Hintergrund nimmt Espressif diverse Anpassungen und Erweiterungen des Backends vor. Erstens erfolgt eine Umstellung im Bereich der Ansteuerung der Pins – die unter https://github.com/zephyrproject-rtos/zephyr/issues/39740 im Detail beschriebene Umstellung auf pinctrl betrifft Nutzer des Systems nicht wirklich, dürfte aber zu geringerem Energieverbrauch führen.
Der unter https://github.com/zephyrproject-rtos/zephyr/pull/44645 bereitstehende Patch “soc: xtensa: esp32: adds initial support to AMP for dual core ESP32” ist derweil von höherem Gehalt. In ihm rüstet Espressif Unterstützung für Mehrprozessorbetrieb in Zephyr nach:

1This PR adds the initial infrastructure to build and load a separated image to be executed only in the ESP32 APP_CPU plus its reserved resources.
2It is also provides the inter processor message device driver to communicate between the two CPUs.

Spezifischerweise plant Espressif dabei die folgenden vier Einsatzszenarien:

1Network offloading: one core takes care of the load, while the other one is still dedicated to managing user applications.
2 Parallel Embedded Software: this allows for noncritical routines to be executed separately from critical routines.
3 Redundant processing: the same firmware can run in parallel on ESP32.
4 General Parallel Processing: this offers two MCUs in one package.

Zephyr: Unterstützung für Wifi-APIs des Echtzeitbetriebssystems

Zephyr bringt mit dem Wifi Manager einen eigenen Satz APIs für die Konfiguration von WLAN-Transmittern mit. Espressif unterstützt diese ab sofort direkt.

Zephyr für ESP32-S3: bitte warten

Zu guter Letzt erteilt Espressif all jenen, die auf baldige Unterstützung von Zephyr am ESP32-S3 hoffen, eine klare Abfuhr. Spezifischerweise spricht man von Problemen beim Power Management:

1While we are already working hard to include ESP32S3 here, it should be noted that the case of this SoC is pretty unique. ESP32S3s dualcore capacity and Bluetooth make it quite different from ESP32S2. Then, what makes ESP32S3 different from ESP32 is the formers USBOTG capability. It is also important to note that ESP32S3 has a powerful CPU, so without a good power control it can drain batteries.

Dies ist allerdings nicht als absolute Absage gegen Zephyr zu werten. Langfristig ist Unterstützung des Betriebssystems geplant, wenn folgende Bedingungen erfüllt sind:

1 In general, the development of ESP32S3 would first need to fulfil the following three requirements before being included in the Zephyr project:
2 multicore support, which is what we are trying to achieve with AMP (this is a merge request at present);
3 lowpower modes, which we have already started working on;
4 support for USBOTG, which is already scheduled for the near future.
5Until we fulfil the abovementioned three requirements, developers wishing to target ESP32S3 should practically stick to ESP32 or ESP32S2, which are currently the best choices for running Zephyr.

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More