NXP AN13948 Benutzerhandbuch zur Integration der LVGL-GUI-Anwendung in die Smart HMI-Plattform
NXP AN13948 Integration der LVGL-GUI-Anwendung in die Smart HMI-Plattform

Einführung

NXP hat ein Solution Development Kit mit dem Namen SLN-TLHMI-IOT auf den Markt gebracht. Es konzentriert sich auf intelligente HMI-Anwendungen und enthält zwei Apps – Kaffeemaschine und Aufzug (eine Smart Panel-App ist in Kürze verfügbar).
Zur Information des Benutzers sind einige grundlegende Dokumente enthalten, z. B.ample, das Entwicklerhandbuch.
Der Leitfaden stellt das grundlegende Softwaredesign und die Architektur der Anwendungen vor und deckt alle Lösungskomponenten ab.
Diese Komponenten umfassen Bootloader, Framework und HAL-Design, um den Entwicklern zu helfen, ihre Anwendungen mit SLN-TLHMI-IOT einfacher und effizienter zu implementieren.

Weitere Einzelheiten zu den Dokumenten und der Lösung finden Sie unter: NXP EdgeReady Smart HMI-Lösung basierend auf i.MX RT117H mit ML Vision, Voice und grafischer Benutzeroberfläche.

Die Einführung konzentriert sich jedoch auf die Ideen und die grundlegende Verwendung. Da die Software auf dem Framework basiert, ist es für Entwickler immer noch nicht einfach zu wissen, wie sie ihre Anwendungen implementieren sollen.
Um die Entwicklung zu beschleunigen, sind zusätzliche Anleitungen erforderlich, die die Implementierung der Hauptkomponenten erläutern (z. B.ample, LVGL GUI, Vision und Spracherkennung) Schritt für Schritt.
Zum BeispielampKunden sollten also ihre eigene LVGL-GUI-Anwendung haben, die sich von den aktuellen Apps in der Lösung unterscheidet.
Nachdem sie ihre LVGL-GUI mit dem von NXP bereitgestellten GUI Guider implementiert haben, müssen sie diese basierend auf dem Framework in die intelligente HMI-Softwareplattform integrieren.

Dieser Anwendungshinweis beschreibt, wie die vom Benutzer entwickelte LVGL-GUI-Anwendung in die auf dem Framework basierende Smart-HMI-Softwareplattform integriert wird.
Zusammen mit dieser Anwendungsnotiz werden auch die Referenzcodes angegeben.

Notiz: In diesem Anwendungshinweis wird nicht erläutert, wie die auf LVGL basierende GUI mit dem Softwaretool GUI Guider entwickelt wird.

Das Überview des LVGL- und GUI-Guiders wird in Abschnitt 1.1 und Abschnitt 1.2 beschrieben.

Leichte und vielseitige Grafikbibliothek
Light and Versatile Graphics Library (LVGL) ist eine kostenlose Open-Source-Grafikbibliothek.
Es bietet alles, was Sie zum Erstellen einer eingebetteten GUI mit benutzerfreundlichen grafischen Elementen, schönen visuellen Effekten und geringem Speicherbedarf benötigen.

GUI-Guider
GUI Guider ist ein benutzerfreundliches Entwicklungstool für grafische Benutzeroberflächen von NXP, das die schnelle Entwicklung hochwertiger Displays mit der Open-Source-Grafikbibliothek LVGL ermöglicht.
Der Drag-and-Drop-Editor von GUI Guider erleichtert die Nutzung der zahlreichen Funktionen von LVGL. Zu diesen Funktionen gehören Widgets, Animationen und Stile, um eine GUI mit minimalem oder keinem Code zu erstellen.
Mit einem Mausklick können Sie Ihre Anwendung in einer simulierten Umgebung ausführen oder in ein Zielprojekt exportieren.
Der von GUI Guider generierte Code kann problemlos zu Ihrem Projekt hinzugefügt werden. Dies beschleunigt den Entwicklungsprozess und ermöglicht Ihnen, Ihrer Anwendung nahtlos eine eingebettete Benutzeroberfläche hinzuzufügen.
GUI Guider kann kostenlos mit NXP-Universal- und Crossover-MCUs verwendet werden und enthält integrierte Projektvorlagen für mehrere unterstützte Plattformen.
Um mehr über LVGL und GUI-Entwicklung auf GUI Guider zu erfahren, besuchen Sie https://lvgl.io/ und GUI Guider.

Entwicklungsumgebung

Bereiten Sie die Entwicklungsumgebung für die Entwicklung und Integration einer GUI-App in die Smart-HMI-Plattform vor und richten Sie sie ein.

Hardwareumgebung

Für die Demonstration nach der Entwicklung wird folgende Hardware benötigt:

  • Das Smart HMI Development Kit basierend auf NXP i.MX RT117H
  • SEGGER J-Link mit einem 9-poligen Cortex-M-Adapter

Software-Umgebung
Die in diesem Anwendungshinweis verwendeten Softwaretools und ihre Versionen werden wie folgt vorgestellt:

  • GUI Guider V1.5.0-GA
  • MCUXpresso IDE V11.7.0
    Notiz: Ein Fehler in Versionen vor 11.7.0 erlaubt keine ordnungsgemäße Integration in Multicore-Projekte.
    Daher ist Version 11.7.0 oder höher erforderlich.
  • RT1170 SDK V2.12.1
  • SLN-TLHMI-IOT-Softwareplattform – Smart-HMI-Quellcodes in unserem offiziellen GitHub-Repository veröffentlicht

Weitere Informationen zum Einrichten und Installieren der Hardware- und Softwareumgebung finden Sie unter Erste Schritte mit SLN-TLHMI-IOT (Dokument MCU-SMHMI-GSG).

Integrieren Sie die LVGL-GUI-Anwendung in eine intelligente HMI-Plattform

Die Smart-HMI-Softwareplattform basiert auf einer Framework-Architektur. Entwickler haben Schwierigkeiten, ihre LVGL-GUI-Anwendung zur Smart-HMI-Softwareplattform hinzuzufügen, selbst wenn sie den Entwicklerleitfaden lesen und das Framework kennen.
In den nächsten Abschnitten wird die Implementierung Schritt für Schritt erläutert.

Entwickeln Sie eine LVGL-GUI-Anwendung auf GUI Guider
Wie oben erwähnt liegt der Schwerpunkt dieser Anwendungsnotiz nicht auf der Entwicklung der LVGL-GUI auf GUI Guider.
Aber eine GUI example ist notwendig.
Daher wird eine einfache GUI-Vorlage namens Slider Progress, die in GUI Guider bereitgestellt wird, als GUI-Beispiel ausgewählt.ample für eine schnelle Einrichtung.
Die GUI-Vorlage „Slider Progress“ wird verwendet, da sie ein Bild enthält, das zum Demonstrieren des Erstellens von Bildressourcen in der Anwendung erforderlich ist.
Die GUI exampDie Datei lässt sich sehr einfach generieren: Um ein Projekt mit der aktualisierten LVGL-Bibliothek V8.3.2 und der Board-Vorlage als MIMXRT1176xxxxx zu erstellen, lesen Sie das GUI Guider-Benutzerhandbuch (Dokument GUIDERUG).
Abbildung 1 zeigt die Projekteinstellungen.

Notiz: Es muss der Paneltyp, wie in der roten Box in Abbildung 1 dargestellt, ausgewählt werden, da dieser auf dem aktuellen Entwicklungsboard verwendet wird.

Führen Sie nach dem Erstellen des Projekts den Simulator aus, um die zugehörigen LVGL-GUI-Codes zu generieren und auch das Projekt zu erstellen.
Sie können die Wirkung der GUI ex überprüfenample auf dem Simulator.

Abbildung 1. GUI-Projekt-Setup auf GUI Guider
Projekteinstellung

Erstellen Sie Ihr Projekt auf Smart HMI
Notiz: Erstellen Sie zunächst Ihr Projekt in der MCUXpresso IDE.

Nach der LVGL GUI exampNachdem die Datei erstellt wurde, kann sie als Hauptziel verwendet werden, um sie zur Implementierung Ihrer GUI-Anwendung in die intelligente HMI-Softwareplattform im MCUXpresso-Projekt zu integrieren.
Die einfache und schnelle Methode besteht darin, das aktuelle Anwendungsprojekt zu klonen, das auf der Smart-HMI-Plattform präsentiert wird.
Als geklonte Quelle ist die Aufzugs-App die bessere Wahl, da sie über eine einfache Implementierung verfügt.

Führen Sie die folgenden Schritte aus, um Ihr Projekt zu erstellen:

  1. Kopieren Sie den Ordner „elevator“ und fügen Sie ihn in den geklonten Smart-HMI-Quellcode von GitHub ein. Benennen Sie ihn in Ihren eigenen um.
    Für dieses BeispielampWir haben uns für „slider_progress“ entschieden, nach dem Namen des GUI-Beispiels.ample.
  2. Geben Sie im Ordner „slider_progress“ den Ordner „lvgl_vglite_lib“ ein, der das LVGL-GUI-Projekt enthält.
  3. Öffnen Sie die projektbezogenen files .cproject und .project und ersetzen Sie die gesamte Zeichenfolge „elevator“ durch Ihre Projektnamenzeichenfolge „slider_progress“.
  4. Führen Sie den entsprechenden Austausch für beide Projekte durch files in den Ordnern „cm4“ und „cm7“.
    Richten Sie Ihr Projekt ein, indem Sie das Aufzugsprojekt klonen files.
    Wie in Abbildung 2 Ihre Projekte können jetzt auf die gleiche Weise wie das Aufzugsprojekt in MCUXpresso IDE geöffnet werden.

Abbildung 2. Auf MCUXpresso eingerichtete Projekte
Projekt-Setup

Erstellen Sie die Ressourcen für Smart HMI
Im Allgemeinen werden in der GUI Bilder verwendet (Töne werden auch in Sprachaufforderungen verwendet).
Die Bilder und Töne werden als Ressourcen bezeichnet und in einem Flash nacheinander gespeichert. Bevor sie auf dem Flash programmiert werden, sollten die Ressourcen in eine Binärdatei eingebaut werden. file.
Die Hauptaufgabe besteht darin, die Namen der Referenz-App (Aufzug) durch Ihre eigenen zu ersetzen.

Führen Sie dazu die folgenden Schritte aus:

  1. Löschen Sie den geklonten Ordner „images“ unter slider_progress/resource.
  2. Kopieren Sie den Ordner „images“ unter \generated in Ihr GUI-Guider-Projekt.
  3. Fügen Sie es unter „Slider_Progress/Ressource“ ein. (Das heißt, verwenden Sie Ihre eigenen Bilder und nicht die aus der Aufzugs-App.)
  4. Löschen Sie die *.mk file wird für den GUI Guider im Ordner „images“ verwendet.
  5. Benennen Sie den files elevator_resource.txt, elevator_resource_build.bat und elevator_resource_build.sh im Ordner „resource“ zu Ihrem Projektnamen slider_progress_resource.txt, slider_progress_resource_build.bat und slider_progress_resource_build.sh.
    Bemerkung:
    • elevator_resource.txt: enthält die Pfade und Namen aller in der App verwendeten Ressourcen (Bilder und Sounds).
    • elevator_resource_build.bat/elevator_resource_build.sh: wird zum entsprechenden Erstellen der Ressourcen in Windows und Linux verwendet.
  6. Nach dem Öffnen der Datei slider_progress_resource.txt file, ersetzen Sie alle Zeichenfolgen „elevator“ durch „slider_progress“.
  7. Entfernen Sie alle alten Bilder und fügen Sie neue mit Ihrem Bild hinzu file Namen (hier ist „_scan_example_597x460.c“), wie zum Beispiel Bild ../../slider_progress/resource/images/_scan_example_597x460.c.
  8. Öffnen Sie die Datei slider_progress_resource.bat file für Windows und ersetzen Sie alle Zeichenfolgen „elevator“ durch „slider_progress“. Machen Sie dasselbe mit dem file slider_progress_resource.sh für Linux.
  9. Doppelklicken Sie auf den Stapel file slider_progress_resource_build.bat für Windows.
  10. Das Befehlsfenster wird angezeigt und automatisch ausgeführt, um die Binärdatei der Bildressource zu generieren file Enthält die Bilddaten und Ressourcenzugriffsinformationen sowie C-Codes zum Festlegen aller Bildspeicherorte im Flash und der Gesamtbytegröße der Bilder.
    Nach der Meldung „Ressourcengenerierung abgeschlossen!“ wird die Bildressource Binär file mit dem Namen slider_progress_resource.bin und die Ressourcenzugriffsinformationen file mit dem Namen resource_information_table.txt werden im Ordner „resource“ generiert.
    Die Bildressource Binär file ist auf Flash programmiert und die Ressourcenzugriffsinformationen werden verwendet, um auf die Ressourcen auf dem Smart HMI zuzugreifen (siehe Abschnitt 3.4.1).

Integrieren Sie die LVGL-GUI-Anwendung in ein intelligentes HMI
Die LVGL GUI-Anwendungscodes (hier ist der SliderProgress GUI-Beispielcodeample) und die erstellten Bildressourcen können inklusive Zugangsinformationen zum Smart HMI hinzugefügt werden.
Um Ihre LVGL-GUI-Anwendung auf Smart HMI zu implementieren, müssen Sie außerdem die mit der LVGL-GUI und den zugehörigen Konfigurationen verbundenen HAL-Geräte hinzufügen.
Die LVGL-GUI-Anwendung läuft auf dem M4-Kern und die zugehörige Implementierung befindet sich fast im M4-Projekt „sln_smart_tlhmi_slider_progress_cm4“.
Die detaillierten Schritte werden in weiteren Unterabschnitten beschrieben.

Fügen Sie LVGL-GUI-Codes und -Ressourcen hinzu
Die für Smart HMI verwendeten LVGL-GUI-Anwendungscodes befinden sich in den Ordnern „custom“ und „generated“ im GUI Guider-Projekt.

Um die Codes zum Smart HMI hinzuzufügen, befolgen Sie die folgenden Schritte:

  1. Ersetzen Sie custom.c und custom.h unter slider_progress/cm4/custom/ durch die im Ordner „custom“ im GUI Guider-Projekt.
  2. Entfernen Sie die „generierten“ Ordner aus slider_progress/cm4/.
    Kopieren Sie dann den Ordner „generated“ aus dem GUI Guider-Projekt und fügen Sie ihn in slider_progress/cm4/ ein.
  3. Löschen Sie die Ordner „image“ und „mPythonImages“ sowie alle files *.mk und *.py im Ordner „generated“.
    Wie oben erwähnt, sind die Bilder im Ordner „image“ in eine Ressourcenbinärdatei integriert file, daher wird der Ordner „image“ nicht benötigt.
    Der Ordner „mPythonImages“ und alle files *.mk und *.py sind für das Smart HMI unerwünscht.
  4. Um eine Mutex-Steuerung basierend auf der Smart-HMI-Plattform hinzuzufügen und die Bildspeicherorte auf dem Flash festzulegen, ändern Sie die file custom.c auf MCUXpresso IDE.
    Diese werden alle von RT_PLATFORM definiert.
  5. Öffnen Sie das Aufzugsprojekt in der MCUXpresso IDE. Suchen Sie die Makrodefinition RT_PLATFORM in der Datei custom.c unter sln_smart_tlhmi_elevator_cm4 > custom und kopieren Sie alle Codezeilen von #if defined(RT_PLATFORM) bis #endif und fügen Sie sie in die file custom.c unter sln_smart_tlhmi_slider_progress_cm4 > benutzerdefiniert.
  6. Löschen Sie die Codezeilen unter #else, die #else enthalten, da diese für die Aufzug-GUI verwendet werden.
    Die hinzugefügten Codezeilen umfassen Folgendes:
    • Das Include files sind wie folgt:
      Code und Ressourcen

    • Die Variablendeklaration lautet wie folgt:
      Code und Ressourcen
    • Die C-Codes in der Funktion custom_init() lauten wie folgt:
      Code und Ressourcen
      Code und Ressourcen
    • Die C-Codes für die Funktionen _takeLVGLMutex(), _giveLVGLMutex() und setup_imgs(), in denen die Speicherorte aller Bilder festgelegt werden.
  7. Ersetzen Sie die Codes in der Funktion setup_imgs() durch die Standort-Setup-Codes für Bilder in der Datei resource_information_table.txt. file (siehe Abschnitt 3.3).
    In dieser Anwendungsnotiz gibt es nur eine Bildressource, die wie folgt eingerichtet ist: _scan_example_597x460.data = (Basis + 0); Danach wird die Funktion setup_imgs() wie folgt angezeigt:
    Code und Ressourcen
  8. Um die Makrodefinition und Funktionsdeklaration für custom.c hinzuzufügen, ändern Sie custom.h file unter sln_smart_tlhmi_slider_progress_cm4 > benutzerdefiniert, wie unten gezeigt:
    Code und Ressourcen
  9. Um die Bilder in Ihrer LVGL-GUI-Anwendung zu definieren, ändern Sie die Datei lvgl_images_internal.h file unter sln_smart_tlhmi_slider_progress_cm4 > benutzerdefiniert.
    • Öffnen Sie ein Bild *.c file (hier ist _scan_example_597x460.c) unter /generated/image/ im GUI Guider-Projekt.
      Kopieren Sie die Bilddefinition am Ende des file. Fügen Sie es in die Datei lvgl_images_internal.h ein. file nachdem alle ursprünglichen Definitionen der Bilder für die Aufzugs-App gelöscht wurden.
    • Löschen Sie .data = _scan_example_597x460_map im Array, da die .data in der Funktion setup_imgs() festgelegt sind.
      Das Array wird abschließend in der Datei lvgl_images_internal.h definiert. file, wie unten gezeigt:
      Code und Ressourcen
      Bemerkung:
      Wiederholen Sie die obigen Vorgänge für alle Bilder files nacheinander, wenn mehrere Bilder vorhanden sind files.
  10. Konfigurieren Sie die Gesamtgröße der Bildressource, indem Sie die Makrodefinition APP_LVGL_IMGS_SIZE in der Datei app_config.h definieren. file unter sln_smart_tlhmi_slider_progress_cm7 > Quelle mit der neuen Größe der Bilder.
    Diese neue Größe ist in der erstellten Ressource resource_information_table.txt verfügbar. file.

Hinzufügen von HAL-Geräten und -Konfigurationen
Basierend auf der Framework-Architektur werden zwei HAL-Geräte (Anzeige- und Ausgabegeräte) für die LVGL-GUI-Anwendung entwickelt.
Die Implementierungen der beiden Geräte sind je nach LVGL-GUI-Anwendung unterschiedlich, obwohl es für sie gemeinsame Architekturentwürfe gibt.
Die Umsetzung erfolgt getrennt in zwei files.
Daher muss es die beiden klonen files aus der aktuellen Aufzugsanwendung und ändern Sie Ihre LVGL-GUI-Anwendung.
Aktivieren Sie anschließend Ihre Geräte in der Konfiguration file.
Ihre LVGL-GUI-Anwendung basiert auf der intelligenten HMI-Plattform basierend auf dem Framework.

Die detaillierten Änderungen können in der MCUXpresso IDE vorgenommen werden, wie unten gezeigt:

  • Implementieren Sie das Display-HAL-Gerät
    1. Kopieren und einfügen der Datei hal_display_lvgl_elevator.c file unter der Gruppe sln_smart_tlhmi_slider_progress_cm4 > Framework > Hal > Display im MCUXpresso-Projekt. Benennen Sie es für Ihre Anwendung in hal_display_lvgl_sliderprogress.c um.
    2. Öffnen Sie die file hal_display_lvgl_sliderprogress.c und ersetzen Sie alle Zeichenfolgen „elevator“ durch Ihre Anwendungszeichenfolge „SliderProgress“ in der file.
  • Implementieren Sie das Ausgabe-HAL-Gerät
    1. Kopieren und einfügen der Datei hal_output_ui_elevator.c file unter der Gruppe sln_smart_tlhmi_slider_progress_cm4 > Framework > Hal > Ausgabe im MCUXpresso-Projekt. Benennen Sie es für Ihre Anwendung in hal_output_ui_sliderprogress.c um.
    2. Öffnen Sie die file hal_output_ui_sliderprogress.c. Entfernen Sie alle Funktionen, die mit der Aufzugsanwendung zusammenhängen, mit Ausnahme der folgenden grundlegenden allgemeinen Funktionen des HAL-Geräts:
      HAL_OutputDev_UiElevator_Init();
      HAL_OutputDev_UiElevator_Deinit();
      HAL_OutputDev_UiElevator_Start();
      HAL_OutputDev_UiElevator_Stop();
      HAL_OutputDev_UiElevator_InferComplete();
      HAL_OutputDev_UiElevator_InputNotify();
      Reservieren Sie außerdem die Deklarationen der folgenden beiden Funktionen:
      APP_OutputDev_UiElevator_InferCompleteDecode();
      APP_OutputDev_UiElevator_InputNotifyDecode();
    3. Bereinigen Sie die Funktion HAL_OutputDev_UiElevator_InferComplete(), um später Ihre Anwendung zu erstellen.
      Entfernen Sie in der Funktion beide Funktionsaufrufe _InferComplete_Vision() und _InferComplete_Voice(), die zur Verarbeitung der Ergebnisse von Bild- und Sprachalgorithmen für Aufzugsanwendungen verwendet werden.
    4. Bereinigen Sie die Funktion HAL_OutputDev_UiElevator_InputNotify() und behalten Sie die grundlegende Architektur für die weitere Anwendungsentwicklung bei.
      Abschließend sieht die Funktion wie folgt aus:
      Code und Ressourcen
    5. Entfernen Sie alle Variablendeklarationen, einschließlich Enumeration und Array, mit Ausnahme derjenigen s_UiSurface und s_AsBuffer[], die für die gemeinsamen Implementierungen verwendet werden.
    6. Ersetzen Sie alle Zeichenfolgen „elevator“ durch Ihre Anwendungszeichenfolge „SliderProgress“.
  • Aktivieren und konfigurieren Sie beide HAL-Geräte
    1. Öffnen Sie die Datei board_define.h file unter sln_smart_tlhmi_slider_progress_cm4 > Board.
      Ersetzen Sie alle Zeichenfolgen „elevator“ durch Ihre Anwendungszeichenfolge „SliderProgress“ im file.
      Es aktiviert und konfiguriert die Anzeige- und Ausgabe-HAL-Geräte durch die Definitionen ENABLE_DISPLAY_DEV_LVGLSliderProgress und ENABLE_OUTPUT_DEV_UiSliderProgress.
    2. Öffnen Sie die Datei lvgl_support.c file unter sln_smart_tlhmi_slider_progress_cm4 > board. Ersetzen Sie alle Zeichenfolgen „elevator“ durch Ihre Anwendungszeichenfolge „SliderProgress“ im file.
      Es ermöglicht die Kameravoreinstellungview auf der GUI auf Anzeigetreiberebene.
  • Registrieren Sie beide HAL-Geräte
    Öffnen Sie die M4-Hauptdatei sln_smart_tlhmi_cm4.cpp file unter sln_smart_tlhmi_slider_progress_cm4 > Quelle.
    Ersetzen Sie alle Zeichenfolgen „elevator“ durch Ihre Anwendungszeichenfolge „SliderProgress“ im file.
    Es registriert das Anzeige- und Ausgabe-HAL-Gerät für Ihre Anwendung anstelle der Aufzugsanwendung.
    Daher ist die Integration zum Ausführen der grundlegenden LVGL-GUI-Anwendung auf Smart HMI abgeschlossen.
    Je nach Anforderungen an die Anwendung können auf Basis der integrierten Basisanwendung weitere Implementierungen hinzugefügt werden.

Demonstration

Die Anwendungsdemo „slider_progress“ wird zusammen mit dieser Anwendungsnotiz implementiert.

Nach dem Entpacken des Demo-Softwarepakets legen Sie Folgendes ab files und Ordner in die Smart HMI Software:

  • Der file hal_display_lvgl_sliderprpgress.c unter [demo]\framework\hal\display\ zum Pfad [smart HMI]\framework\hal\display\
  • Der file hal_output_ui_slider_progress.c unter [demo]\framework\hal\output\ zum Pfad [smart HMI]\framework\hal\output\
  • Der Ordner „slider_progress“ im Stammpfad von [smart HMI]\
    Die Projekte können auf MCUXpresso IDE geöffnet werden, genau wie die auf der Smart-HMI-Plattform präsentierte Kaffeemaschinen-/Aufzugs-App.
    Nach der Programmierung der erstellten *.axf file an die Adresse 0x30100000 und die Ressource Binär file an die Adresse 0x30700000 kann die LVGL-GUI-Demo erfolgreich auf der Smart-HMI-Entwicklungsplatine ausgeführt werden (Bildschirmanzeige siehe Abbildung 3).
    Notiz: Wenn Sie v1.7.0 von MCUXpresso IDE verwenden, aktivieren Sie „Link-Skript verwalten“ in den Einstellungen > MCU C++ Linker > Verwaltetes Linker-Skript, bevor Sie das CM4-Projekt erstellen.
    Abbildung 3. LVGL-GUI-Demoanzeige auf der intelligenten HMI-Entwicklungsplatine
    Demo-Anzeige

Versionsgeschichte

Der Revisionsverlauf fasst die Überarbeitungen dieses Dokuments zusammen.

Tabelle 1. Revisionsverlauf

Revisionsnummer Datum Wesentliche Änderungen
1 16. Juni 2023 Erstveröffentlichung

Hinweis zum Quellcode im Dokument

ExampDer in diesem Dokument gezeigte Code unterliegt dem folgenden Urheberrecht und der BSD-3-Klausel-Lizenz:
Copyright 2023 NXP. Die Weiterverbreitung und Nutzung in Quell- und Binärform, mit oder ohne Änderung, ist zulässig, sofern die folgenden Bedingungen erfüllt sind:

  1. Bei der Weiterverteilung des Quellcodes müssen der oben genannte Copyright-Vermerk, diese Liste der Bedingungen und der folgende Haftungsausschluss beibehalten werden.
  2. Bei Weiterverbreitungen in binärer Form müssen der obige Copyright-Hinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder anderen Materialien mit der Weitergabe bereitgestellt werden.
  3. Weder der Name des Inhabers des Urheberrechts noch die Namen seiner Mitwirkenden dürfen ohne ausdrückliche vorherige schriftliche Genehmigung verwendet werden, um von dieser Software abgeleitete Produkte zu unterstützen oder zu bewerben.

DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKERN „OHNE MÄNGELGEWÄHR“ ZUR VERFÜGUNG GESTELLT UND JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN AUSGESCHLOSSEN.
IN KEINEM FALL SIND DER COPYRIGHTINHABER ODER DIE MITWIRKENDEN FÜR JEGLICHE DIREKTE, INDIREKTE, ZUFÄLLIGE, SPEZIELLE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; NUTZUNGSAUSFALL, DATENVERLUST, VERLUST VON GEWINNEN ODER GESCHÄFTSUNTERBRECHUNG) VERANTWORTLICH, WEDER VERTRAGLICH, VERSCHULDENSUNABHÄNGIG ODER UNERLAUBT (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER VERWENDUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER
SCHADEN.

Rechtliche Informationen

Definitionen
Entwurf:
Ein Entwurfsstatus eines Dokuments zeigt an, dass der Inhalt noch intern behandelt wirdview und vorbehaltlich der formellen Genehmigung, die zu Änderungen oder Ergänzungen führen kann.
NXP Semiconductors übernimmt keine Zusicherungen oder Gewährleistungen hinsichtlich der Genauigkeit oder Vollständigkeit der in einer Entwurfsversion eines Dokuments enthaltenen Informationen und übernimmt keine Haftung für die Folgen der Verwendung dieser Informationen.

Haftungsausschlüsse
Beschränkte Gewährleistung und Haftung: Die Informationen in diesem Dokument gelten als richtig und zuverlässig.
NXP Semiconductors gibt jedoch keine ausdrücklichen oder stillschweigenden Zusicherungen oder Gewährleistungen hinsichtlich der Richtigkeit oder Vollständigkeit dieser Informationen und übernimmt keine Haftung für die Folgen der Verwendung dieser Informationen.
NXP Semiconductors übernimmt keine Verantwortung für den Inhalt dieses Dokuments, wenn dieser von einer Informationsquelle außerhalb von NXP Semiconductors bereitgestellt wird.
In keinem Fall haftet NXP Semiconductors für indirekte, zufällige, Straf-, Sonder- oder Folgeschäden (einschließlich – ohne Einschränkung – entgangener Gewinn, entgangene Einsparungen, Betriebsunterbrechung, Kosten im Zusammenhang mit der Entfernung oder dem Austausch von Produkten oder Nacharbeitskosten), unabhängig davon, ob oder nicht, solche Schäden beruhen auf unerlaubter Handlung (einschließlich Fahrlässigkeit), Gewährleistung, Vertragsbruch oder einer anderen Rechtstheorie.
Ungeachtet etwaiger Schäden, die dem Kunden aus welchem ​​Grund auch immer entstehen könnten, ist die aggregierte und kumulative Haftung von NXP Semiconductors gegenüber dem Kunden für die hierin beschriebenen Produkte gemäß den Geschäftsbedingungen für den gewerblichen Verkauf von NXP Semiconductors beschränkt.

Recht auf Änderungen: NXP Semiconductors behält sich das Recht vor, jederzeit und ohne Vorankündigung Änderungen an den in diesem Dokument veröffentlichten Informationen vorzunehmen, insbesondere an Spezifikationen und Produktbeschreibungen.
Dieses Dokument ersetzt alle vor der Veröffentlichung bereitgestellten Informationen.

Eignung für den Einsatz: Die Produkte von NXP Semiconductors sind weder für den Einsatz in lebenserhaltenden, lebens- oder sicherheitskritischen Systemen oder Geräten konzipiert, zugelassen oder garantiert, noch für den Einsatz in Anwendungen, bei denen ein Ausfall oder eine Fehlfunktion eines Produkts von NXP Semiconductors voraussichtlich zu Verletzungen, Todesfällen oder schweren Sach- oder Umweltschäden führen könnte.
NXP Semiconductors und seine Lieferanten übernehmen keine Haftung für den Einbau und/oder die Verwendung von Produkten von NXP Semiconductors in derartigen Geräten oder Anwendungen. Daher erfolgt der Einbau und/oder die Verwendung auf eigenes Risiko des Kunden.

Anwendungen: Die hier für diese Produkte beschriebenen Anwendungen dienen ausschließlich zur Veranschaulichung.
NXP Semiconductors übernimmt keine Zusicherung oder Garantie, dass solche Anwendungen ohne weitere Tests oder Änderungen für den angegebenen Zweck geeignet sind.
Kunden sind für die Entwicklung und den Betrieb ihrer Anwendungen und Produkte unter Verwendung von Produkten von NXP Semiconductors verantwortlich und NXP Semiconductors übernimmt keine Haftung für Unterstützung bei Anwendungen oder der Entwicklung von Kundenprodukten.
Es liegt in der alleinigen Verantwortung des Kunden, zu bestimmen, ob das Produkt von NXP Semiconductors für die geplanten Anwendungen und Produkte des Kunden sowie für die geplante Anwendung und Nutzung der Drittkunden des Kunden geeignet und passend ist.
Kunden sollten geeignete Design- und Betriebsvorkehrungen treffen, um die mit ihren Anwendungen und Produkten verbundenen Risiken zu minimieren.
NXP Semiconductors übernimmt keinerlei Haftung für Ausfälle, Schäden, Kosten oder Probleme, die auf Schwächen oder Ausfälle der Anwendungen oder Produkte des Kunden oder der Anwendung oder Verwendung durch Drittkunden des Kunden beruhen.
Der Kunde ist dafür verantwortlich, alle notwendigen Tests für seine Anwendungen und Produkte unter Verwendung von NXP Semiconductors-Produkten durchzuführen, um einen Ausfall der Anwendungen und Produkte oder der Anwendung oder Nutzung durch Drittkunden des Kunden zu vermeiden. NXP übernimmt diesbezüglich keine Haftung.

Allgemeine Geschäftsbedingungen für den gewerblichen Verkauf: Die Produkte von NXP Semiconductors werden gemäß den allgemeinen Geschäftsbedingungen für den gewerblichen Verkauf verkauft, wie unter veröffentlicht http://www.nxp.com/profile/terms, sofern in einer gültigen schriftlichen Individualvereinbarung nichts anderes vereinbart ist.
Im Falle des Abschlusses einer individuellen Vereinbarung gelten ausschließlich die Bedingungen der jeweiligen Vereinbarung.
Der Geltung allgemeiner Geschäftsbedingungen des Kunden im Zusammenhang mit dem Erwerb von Produkten von NXP Semiconductors durch den Kunden widerspricht NXP Semiconductors hiermit ausdrücklich.

Ausfuhrkontrolle: Dieses Dokument sowie die darin beschriebenen Artikel unterliegen möglicherweise Exportkontrollbestimmungen.
Für den Export ist möglicherweise eine vorherige Genehmigung der zuständigen Behörden erforderlich.

Eignung für den Einsatz in nicht automobilqualifizierten Produkten: Sofern in diesem Datenblatt nicht ausdrücklich angegeben ist, dass dieses spezielle Produkt von NXP Semiconductors für den Einsatz in Kraftfahrzeugen geeignet ist, ist das Produkt nicht für den Einsatz in Kraftfahrzeugen geeignet.
Es ist weder gemäß den Prüf- oder Anwendungsanforderungen für Kraftfahrzeuge qualifiziert noch getestet. NXP Semiconductors übernimmt keine Haftung für den Einbau und/oder die Verwendung von nicht für Kraftfahrzeuge qualifizierten Produkten in Kraftfahrzeugausrüstungen oder -anwendungen.
Für den Fall, dass der Kunde das Produkt zum Design-in und zur Verwendung in Automobilanwendungen gemäß Automobilspezifikationen und -standards verwendet, muss der Kunde (a) das Produkt ohne die Gewährleistung von NXP Semiconductors für das Produkt für solche Automobilanwendungen, -verwendungen und -spezifikationen verwenden, und ( b) Wann immer der Kunde das Produkt für Automobilanwendungen über die Spezifikationen von NXP Semiconductors hinaus verwendet, erfolgt diese Verwendung ausschließlich auf eigenes Risiko des Kunden, und (c) der Kunde stellt NXP Semiconductors vollständig von jeglicher Haftung, Schäden oder gescheiterten Produktansprüchen frei, die sich aus dem Design und der Verwendung des Kunden ergeben das Produkt für Automobilanwendungen über die Standardgewährleistung von NXP Semiconductors und die Produktspezifikationen von NXP Semiconductors hinaus.

Übersetzungen: Eine nicht-englische (übersetzte) Version eines Dokuments, einschließlich der in diesem Dokument enthaltenen rechtlichen Informationen, dient nur zu Referenzzwecken.
Im Falle von Abweichungen zwischen der übersetzten und der englischen Version ist die englische Version maßgebend.

Sicherheit: Der Kunde ist sich darüber im Klaren, dass alle NXP-Produkte möglicherweise nicht identifizierten Schwachstellen unterliegen oder etablierte Sicherheitsstandards oder Spezifikationen mit bekannten Einschränkungen unterstützen.
Der Kunde ist für die Gestaltung und den Betrieb seiner Anwendungen und Produkte während ihres gesamten Lebenszyklus verantwortlich, um die Auswirkungen dieser Schwachstellen auf die Anwendungen und Produkte des Kunden zu reduzieren.
Die Verantwortung des Kunden erstreckt sich auch auf andere offene und/oder proprietäre Technologien, die von NXP-Produkten zur Verwendung in Kundenanwendungen unterstützt werden.
NXP übernimmt keine Haftung für etwaige Sicherheitslücken.
Der Kunde sollte regelmäßig Sicherheitsupdates von NXP prüfen und diese entsprechend verfolgen.
Der Kunde wählt Produkte mit Sicherheitsmerkmalen aus, die den Regeln, Vorschriften und Standards der beabsichtigten Anwendung am besten entsprechen, und trifft die endgültigen Designentscheidungen in Bezug auf seine Produkte und ist unabhängig davon allein verantwortlich für die Einhaltung aller gesetzlichen, behördlichen und sicherheitsbezogenen Anforderungen in Bezug auf seine Produkte Informationen oder Support, die von NXP bereitgestellt werden können.
NXP verfügt über ein Product Security Incident Response Team (PSIRT) (erreichbar unter PSIRT@nxp.com), das die Untersuchung, Meldung und Lösungsfreigabe von Sicherheitslücken von NXP-Produkten verwaltet.

NXP BV: NXP BV ist kein Betreiberunternehmen und vertreibt oder verkauft keine Produkte.

Handelsmarken

Beachten: Alle genannten Marken, Produktnamen, Servicenamen und Warenzeichen sind Eigentum ihrer jeweiligen Inhaber.
NXP: Wortmarke und Logo sind Warenzeichen von NXP BV
i.MX: ist eine Marke von NXP BV

KUNDENDIENST

Weitere Informationen finden Sie unter: http://www.nxp.com
Logo.png

Dokumente / Ressourcen

NXP AN13948 Integration der LVGL-GUI-Anwendung in die Smart HMI-Plattform [pdf] Benutzerhandbuch
AN13948 Integration der LVGL-GUI-Anwendung in die Smart-HMI-Plattform, AN13948, Integration der LVGL-GUI-Anwendung in die Smart-HMI-Plattform

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *