ESP-News: “Hypervisor” ESP Privilege Separation, ESP-RTC und neue Cloud-Konnektoren

Im Hause Espressif gibt es Neuerungen: mit ESP Privilege Separation steht ein an Multiuserbetriebssysteme erinnerndes Feature zur Verfügung, das am ESP32-C3 die Unterteilung von Applikationen in Berechtigungsklassen unterstützt. Außerdem gibt es einen Golioth-Konnektor und eine neue Ankündigung, die die Vorteile von RainMaker betont.

Worum geht es hier?

Espressif bietet mit der ESP32-Serie eine Gruppe von Mikrocontrollern an, die ein Funkmodul und eine frei programmierbare MCU kombinieren. Ob der immensen Verbreitung der Chips tauchen im Ökosystem immer wieder neue Funktionen auf, die Entwicklern die Arbeit erleichtern.

ESP Privilege Separation trennt Programme bzw Programmteile…

Echtzeitbetriebssysteme mögen Threads “fair” unterteilen – gegen ein Programm, das amoklaufend die halbe Hardware rekonfiguriert, sind sie im Allgemeinen machtlos. Mit ESP Privilege Separation rüstet Espressif an dieser Stelle nach.
Das ausschließlich am ESP32-C3 verfügbare Produkt unterteilt die Ausführungsumgebung im Prinzip wie in Abbildung eins gezeigt in zwei Teile – ein Modul hat “vollen” Systemzugriff, während das andere mit reduzierten Rechten auskommen muss.

(Bildquelle: Espressif)

Kern des Systems ist dabei eine Erweiterung an diversen Peripheriegeräten, die den Zugriff auf “haarige” Teile der MCU nur im privilegierten Modus erlaubt.

(Bildquelle: Espressif)

Im unter https://blog.espressif.com/introducing-esp-privilege-separation-aa57a02c36e4 bereitstehenden Detail-Ankündigungspost verrät das Unternehmen mehr über den Gestationsprozess – eine Portierung auf andere ESP32-Varianten scheint ausgeschlossen:

1We started off with a PoC on ESP32 and realized that there were limitations in it, and we would require some robust hardware support that can enforce permissions at the hardware level to achieve isolation between the user and kernel application. This led us to design our own custom peripherals . . .

… und steht schon zum Betatest bereit

Obwohl Espressif die neue Funktion an mehrerlei Stelle explizit als Betaversion bezeichnet, bedeutet dies nicht, dass nicht schon jetzt umfangreiche Dokumentation samt Codebeispielen zur Verfügung steht.
Erster Kontaktpunkt sollte der unter https://docs.espressif.com//projects/esp-privilege-separation/en/latest/esp32c3/index.html bereitstehende Guide sein, der auch technische Details bereitstellt. Besitzer eines kompatiblen ESP32-Boards finden unter https://github.com/espressif/esp-privilege-separation/tree/master/examples Codebeispiele; der übliche Rest des Moduls liegt unter https://github.com/espressif/esp-privilege-separation.
Das ebenda befindliche Blink-Beispiel illustriert die Trennung zwischen den beiden Modulen anhand der in der Abbildung gezeigten Struktur.

(Bildquelle: Screenshot durch Autor)

Während der Code des User-Teils der Applikation im Allgemeinen nach Schema F aufgebaut ist, sehen wir im Protected-Teil nach folgendem Schema die Initialisierung des Peripheriegeräts:

1void app_main()
2{
3 esp_err_t ret;
4
5 ret = esp_priv_access_init(user_app_exception_handler);
6 if (ret != ESP_OK) {
7 ESP_LOGE(TAG, “Failed to initialize PA %dn, ret);
8 }
9
10 esp_priv_access_set_periph_perm(PA_GPIO, PA_WORLD_1, PA_PERM_ALL);
11
12 esp_ws2812_device_register(“/dev/ws2812”);
13
14 ret = esp_priv_access_user_boot();
15 if (ret != ESP_OK) {
16 ESP_LOGE(TAG, “Failed to boot user app %dn, ret);
17 }
18
19 for (int i = 0; ; i++) {
20 ets_printf(“Hello from protected environmentn);
21 vTaskDelay(500);
22 }
23}

RainMaker vereinheitlicht die Integration anderer Clouddienste

Espressif bietet mit RainMaker seit einiger Zeit eine Art Integrationsserver an, der Nutzern der ESP32-Chipfamilie das komfortable Hinzuziehen verschiedenster Clouddienste erlaubt.

(Bildquelle: https://www.espressif.com/en/news/ESP-RainMaker_video)

Unter https://www.espressif.com/en/news/ESP-RainMaker_video stellt Espressif nun ein Video bereit, das einen Kurzüberblick der Möglichkeiten des Systems bietet.

ESP-RTC: neue API für Echtzeit-Datenübertragung

Erst am 6. veröffentlichte Espressif die Ankündigung von ESP-RTC: dabei handelt es sich um einen neuen Softwarestack, der auf die Echtzeitübertragung von Multimediadaten spezialisiert ist:

1The ESPRTC solution materializes realtime audioandvideo transmission based on Espressifs selfdeveloped SIP (Session Initialization Protocol) stack, which includes a transport layer, a transaction layer and a session layer. The signaling interaction module of ESPRTC supports UDP, TCP and TLS, while its media transmission module supports RTP (UDP), RTCP, SRTP, TURN and other NAT transmission protocols. It is worth mentioning that the transmission module of the ESPRTC solution also includes countermeasure algorithms, such as a Jitter Buffer and PLC, which effectively solve packet loss, jitter, congestion, and delays in weak networks, fully ensuring smooth audioandvideo communication in real time.
2The ESPRTC solution also supports the RTSP (Real Time Streaming Protocol) stack, whose media transmission module supports both RTP/UDP and RTP over TCP. The ESPRTC solution can be used as an RTSP server supporting the ondemand use of such players as VLC/FFMPEG/PotPlayer/KmPlayer, or as an RTSP client supporting EasyDarwin, an easytouse, opensource, streaming platform framework.

Mit dem bei TaoBao erhältlichen ESP32-S3-Korvo-2 bietet Espressif ausserdem eine Evalutionsplatine an, die die Realisierung von “Multimedia-Gadgets” aller Couleur erleichtern soll.

(Bildquelle: Espressif)

Golioth: direkte Unterstützung für ESP-IDF

Im Bereich Cloud Connectivity gibt es einen weiteren Neuzugang: während ESP32-Systeme von der IoT-Plattform Golioth seit einiger Zeit über das Zephyr-SDK unterstützt wurden, stellt das Unternehmen unter der URL https://github.com/golioth/golioth-esp-idf-sdk nun erstmals ein für ESP-IDF vorgesehenes SDK zur Verfügung.

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More