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:
2It is also provides the inter processor message device driver to communicate between the two CPUs.
Spezifischerweise plant Espressif dabei die folgenden vier Einsatzszenarien:
2 • Parallel Embedded Software: this allows for non–critical 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:
Dies ist allerdings nicht als absolute Absage gegen Zephyr zu werten. Langfristig ist Unterstützung des Betriebssystems geplant, wenn folgende Bedingungen erfüllt sind:
2 • multicore support, which is what we are trying to achieve with AMP (this is a merge request at present);
3 • low–power modes, which we have already started working on;
4 • support for USB–OTG, which is already scheduled for the near future.
5Until we fulfil the above–mentioned three requirements, developers wishing to target ESP32–S3 should practically stick to ESP32 or ESP32–S2, which are currently the best choices for running Zephyr.
Zuerst erschienen bei Mikrocontroller.net News
Quelle: Read More