NXP AN13948 Integracja aplikacji LVGL GUI z podręcznikiem użytkownika platformy Smart HMI
NXP AN13948 Integracja aplikacji LVGL GUI z platformą Smart HMI

Wstęp

Firma NXP wprowadziła na rynek zestaw deweloperski o nazwie SLN-TLHMI-IOT. Koncentruje się na inteligentnych aplikacjach HMI zawierających dwie aplikacje – ekspres do kawy i windę (aplikacja inteligentnego panelu już wkrótce).
Aby zapewnić użytkownikowi informacje, dołączono kilka podstawowych dokumentów, npample, przewodnik programisty.
Przewodnik przedstawia podstawowy projekt oprogramowania i architekturę aplikacji, obejmującą wszystkie komponenty rozwiązania.
Komponenty te obejmują moduł ładujący, framework i projekt HAL, aby pomóc programistom w łatwiejszym i wydajniejszym wdrażaniu aplikacji przy użyciu SLN-TLHMI-IOT.

Więcej informacji na temat dokumentów i rozwiązania można znaleźć na stronie: NXP EdgeReady Inteligentne rozwiązanie HMI oparte na i.MX RT117H z ML Vision, głosem i graficznym interfejsem użytkownika.

Jednakże wprowadzenie koncentruje się na pomysłach i podstawowym zastosowaniu. Ze względu na zgodność oprogramowania opartego na frameworku programistom nadal nie jest łatwo dowiedzieć się, jak wdrożyć swoje aplikacje.
Aby przyspieszyć rozwój, wymagane są dodatkowe przewodniki przedstawiające sposób implementacji głównych komponentów (npample, LVGL GUI, rozpoznawanie obrazu i głosu) krok po kroku.
Na przykładample, klienci powinni mieć własną aplikację LVGL GUI, różniącą się od obecnych aplikacji w rozwiązaniu.
Po wdrożeniu GUI LVGL za pomocą GUI Guidera dostarczonego przez NXP, muszą zintegrować go z inteligentną platformą oprogramowania HMI opartą na frameworku.

Niniejsza nota aplikacyjna opisuje sposób integracji aplikacji LVGL GUI opracowanej przez użytkownika z platformą inteligentnego oprogramowania HMI opartą na frameworku.
Kody referencyjne są również przedstawione wraz z niniejszą notą aplikacyjną.

Notatka: Niniejsza nota aplikacyjna nie wyjaśnia, jak opracować GUI oparty na LVGL za pomocą narzędzia programowego GUI Guider.

Ponadview Przewodnika LVGL i GUI opisano w Sekcji 1.1 i Sekcji 1.2.

Lekka i wszechstronna biblioteka graficzna
Lekka i wszechstronna biblioteka graficzna (LVGL) to bezpłatna biblioteka graficzna o otwartym kodzie źródłowym.
Zapewnia wszystko, czego potrzebujesz do stworzenia wbudowanego GUI z łatwymi w użyciu elementami graficznymi, pięknymi efektami wizualnymi i niewielkim zużyciem pamięci.

Przewodnik GUI
GUI Guider to przyjazne dla użytkownika narzędzie do tworzenia graficznego interfejsu użytkownika firmy NXP, które umożliwia szybkie tworzenie wysokiej jakości wyświetlaczy przy użyciu biblioteki graficznej LVGL typu open source.
Edytor „przeciągnij i upuść” GUI Guider ułatwia korzystanie z wielu funkcji LVGL. Funkcje te obejmują widżety, animacje i style umożliwiające utworzenie GUI z minimalnym kodowaniem lub bez niego.
Jednym kliknięciem możesz uruchomić aplikację w symulowanym środowisku lub wyeksportować ją do projektu docelowego.
Kod wygenerowany z GUI Guider można łatwo dodać do projektu, przyspieszając proces programowania i umożliwiając bezproblemowe dodanie wbudowanego interfejsu użytkownika do aplikacji.
GUI Guider można używać bezpłatnie z MCU ogólnego przeznaczenia i crossoverami NXP i zawiera wbudowane szablony projektów dla kilku obsługiwanych platform.
Aby dowiedzieć się więcej o rozwoju LVGL i GUI w GUI Guider, odwiedź https://lvgl.io/ i GUI Guider.

Środowisko programistyczne

Przygotuj i skonfiguruj środowisko programistyczne do tworzenia i integrowania aplikacji GUI z inteligentną platformą HMI.

Środowisko sprzętowe

Do demonstracji po opracowaniu wymagany jest następujący sprzęt:

  • Inteligentny zestaw deweloperski HMI oparty na NXP i.MX RT117H
  • SEGGER J-Link z 9-pinowym adapterem Cortex-M

Środowisko oprogramowania
Narzędzia programowe i ich wersje użyte w tej nocie aplikacyjnej przedstawiono poniżej:

  • Przewodnik GUI V1.5.0-GA
  • MCUXpresso IDE V11.7.0
    Notatka: Błąd w wersjach wcześniejszych niż 11.7.0 nie pozwala na prawidłowe wbudowanie projektów wielordzeniowych.
    Dlatego wymagana jest wersja 11.7.0 lub nowsza.
  • Zestaw SDK RT1170 V2.12.1
  • Platforma oprogramowania SLN-TLHMI-IOT – kody źródłowe inteligentnego HMI opublikowane w naszym oficjalnym repozytorium GitHub

Aby dowiedzieć się więcej na temat konfigurowania i instalowania środowiska sprzętu i oprogramowania, zobacz Pierwsze kroki z SLN-TLHMI-IOT (dokument MCU-SMHMI-GSG).

Zintegruj aplikację LVGL GUI z inteligentną platformą HMI

Inteligentna platforma oprogramowania HMI jest zbudowana w oparciu o architekturę frameworkową. Programistom trudno jest dodać aplikację LVGL GUI do platformy inteligentnego oprogramowania HMI, nawet jeśli przeczytali przewodnik programisty i znają framework.
W kolejnych sekcjach wyjaśniono, jak krok po kroku wdrożyć to rozwiązanie.

Twórz aplikację LVGL GUI w GUI Guider
Jak wspomniano powyżej, w tej notatce aplikacyjnej nie skupiono się na tym, jak opracować GUI LVGL w GUI Guider.
Ale np. GUIampjest konieczne.
Dlatego jako przykład GUI wybrany jest jeden prosty szablon GUI o nazwie Slider Progress, dostarczony w GUI Guiderample do szybkiej konfiguracji.
Używany jest szablon GUI Slider Progress, ponieważ zawiera obraz wymagany do zademonstrowania tworzenia zasobów obrazu w aplikacji.
GUI npampplik jest bardzo łatwy do wygenerowania: Aby utworzyć projekt ze zaktualizowaną biblioteką LVGL V8.3.2 i szablonem płytki jako MIMXRT1176xxxxx, zapoznaj się z Podręcznikiem użytkownika GUI Guider (dokument GUIGUIDERUG).
Rysunek 1 przedstawia ustawienia projektu.

Notatka: Należy wybrać typ panelu, jak pokazano w czerwonej ramce na rysunku 1, ponieważ jest on używany na bieżącej płycie rozwojowej.

Po utworzeniu projektu uruchom symulator, aby wygenerować powiązane kody GUI LVGL i skompilować projekt.
Możesz sprawdzić efekt GUI npample na symulatorze.

Rysunek 1. Konfiguracja projektu GUI w GUI Guider
Ustawienie projektu

Utwórz swój projekt na inteligentnym HMI
Notatka: Najpierw utwórz swój projekt w MCUXpresso IDE.

Po LVGL GUI npampplik został zbudowany, może przejść do głównego celu, jakim jest zintegrowanie go z inteligentną platformą oprogramowania HMI w projekcie MCUXpresso w celu wdrożenia aplikacji GUI.
Prostą i szybką metodą jest sklonowanie bieżącego projektu aplikacji prezentowanego na inteligentnej platformie HMI.
Aplikacja windy jest lepszym wyborem jako sklonowane źródło, ponieważ ma prostą implementację.

Aby utworzyć projekt, wykonaj poniższe czynności:

  1. Skopiuj i wklej folder „winda” do sklonowanego kodu źródłowego inteligentnego HMI z GitHub. Zmień nazwę na swoją.
    Dla tego byłegoample, wybraliśmy „slider_progress”, zgodnie z nazwą GUI, npample.
  2. W folderze „slider_progress” wejdź do folderu „lvgl_vglite_lib” zawierającego projekt GUI LVGL.
  3. Otwórz plik związany z projektem files .cproject i .project i zamień cały ciąg „winda” na ciąg nazwy projektu „slider_progress”.
  4. Wykonaj podobną zamianę dla obu projektów files w folderach „cm4” i „cm7”.
    Skonfiguruj swój projekt, klonując projekt windy files.
    Jak pokazano w Rysunek 2 Twoje projekty można teraz otwierać w MCUXpresso IDE w taki sam sposób, jak projekt windy.

Rysunek 2. Konfiguracja projektów na MCUXpresso
Konfiguracja projektu

Zbuduj zasoby dla inteligentnego interfejsu HMI
Ogólnie rzecz biorąc, obrazy są używane w GUI (dźwięki są również używane w komunikatach głosowych).
Obrazy i dźwięki nazywane są zasobami, przechowywanymi sekwencyjnie w pamięci flash. Przed zaprogramowaniem ich w pamięci flash zasoby należy wbudować w plik binarny file.
Głównym zadaniem jest zastąpienie nazw aplikacji referencyjnej (windy) własnymi.

Aby to zrobić, wykonaj poniższe czynności:

  1. Usuń sklonowany folder „images” w folderze slider_progress/resource.
  2. Skopiuj folder „images” do \generated w projekcie GUI Guider.
  3. Wklej go pod slider_progress/resource (to znaczy użyj własnych obrazów, a nie tych z aplikacji windy).
  4. Usuń plik *.mk file używany w GUI Guider w folderze „images”.
  5. Zmień nazwę files winda_resource.txt, winda_resource_build.bat i winda_resource_build.sh w folderze „resource” na nazwę projektu slider_progress_resource.txt, slider_progress_resource_build.bat i slider_progress_resource_build.sh.
    Uwaga:
    • lift_resource.txt: zawierający ścieżki i nazwy wszystkich zasobów (obrazów i dźwięków) używanych w aplikacji.
    • lift_resource_build.bat/elevator_resource_build.sh: używany do budowania zasobów odpowiednio w systemach Windows i Linux.
  6. Po otwarciu pliku slider_progress_resource.txt file, zamień wszystkie ciągi „winda” na „slider_progress”.
  7. Usuń wszystkie stare obrazy i dodaj nowe wraz ze swoim obrazem file nazwy (tutaj jest „_scan_example_597x460.c”), taki jak obraz ../../slider_progress/resource/images/_scan_example_597x460.c.
  8. Otwórz plik slider_progress_resource.bat file dla Windows i zamień wszystkie ciągi „winda” na „slider_progress”. Zrób to samo z file slider_progress_resource.sh dla Linuksa.
  9. Kliknij dwukrotnie partię file slider_progress_resource_build.bat dla Windows.
  10. Pojawi się okno poleceń, które zostanie automatycznie uruchomione w celu wygenerowania pliku binarnego zasobu obrazu file zawierające dane obrazu i informacje o dostępie do zasobów zawierające kody C umożliwiające ustawienie wszystkich lokalizacji obrazów w pamięci flash oraz całkowity rozmiar obrazów w bajtach.
    Po wyświetleniu komunikatu „Zakończono generowanie zasobów!”, plik binarny zasobu obrazu file o nazwie slider_progress_resource.bin i informacje o dostępie do zasobów file o nazwie Resource_information_table.txt są generowane w folderze „resource”.
    Plik binarny zasobu obrazu file jest programowany w pamięci flash, a informacje o dostępie do zasobów są wykorzystywane do uzyskiwania dostępu do zasobów inteligentnego HMI (patrz sekcja 3.4.1).

Zintegruj aplikację LVGL GUI z inteligentnym interfejsem HMI
Kody aplikacji LVGL GUI (tutaj jest GUI SliderProgress npample) i wbudowane zasoby obrazu, w tym informacje dostępowe, można dodać do inteligentnego HMI.
Dodatkowo, aby zaimplementować aplikację LVGL GUI na inteligentnym HMI, wymagane jest dodanie urządzeń HAL związanych z LVGL GUI i powiązanymi konfiguracjami.
Aplikacja LVGL GUI działa na rdzeniu M4, a związana z nią implementacja jest prawie w projekcie M4 „sln_smart_tlhmi_slider_progress_cm4”.
Szczegółowe kroki opisano w dalszych podrozdziałach.

Dodaj kody i zasoby GUI LVGL
Kody aplikacji LVGL GUI używane w inteligentnym HMI znajdują się w folderach „custom” i „generated” w projekcie GUI Guider.

Aby dodać kody do inteligentnego HMI, wykonaj poniższe kroki:

  1. Zastąp pliki niestandardowe.c i niestandardowe.h w obszarze slider_progress/cm4/custom/ plikami z folderu „custom” w projekcie GUI Guider.
  2. Usuń „wygenerowane” foldery z slider_progress/cm4/.
    Następnie skopiuj folder „generated” z projektu GUI Guider i wklej go do slider_progress/cm4/.
  3. Usuń foldery „image” i „mPythonImages” oraz wszystkie files *.mk i *.py w folderze „generated”.
    Jak wspomniano powyżej, obrazy w folderze „image” są wbudowane w plik binarny zasobów file, więc folder „image” nie jest wymagany.
    Folder „mPythonImages” i wszystkie pliki files *.mk i *.py są niepożądane w inteligentnym interfejsie HMI.
  4. Aby dodać kontrolę muteksu w oparciu o inteligentną platformę HMI i ustawić lokalizacje obrazów w pamięci flash, zmodyfikuj plik file niestandardowe.c na MCUXpresso IDE.
    Wszystkie są zdefiniowane przez RT_PLATFORM.
  5. Otwórz projekt windy w MCUXpresso IDE. Przeszukaj definicję makra RT_PLATFORM w pliku custom.c pod sln_smart_tlhmi_elevator_cm4 > niestandardowe i skopiuj wszystkie linie kodu z #if zdefiniowane(RT_PLATFORM) do #endif i wklej je w file niestandardowe.c w obszarze sln_smart_tlhmi_slider_progress_cm4 > niestandardowe.
  6. Usuń linie kodu pod #else zawierające #else, ponieważ są one używane w GUI windy.
    Dodane linie kodu obejmują:
    • Zawiera files są następujące:
      Kod i zasoby

    • Deklaracja zmiennej wygląda następująco:
      Kod i zasoby
    • Kody C w funkcji custom_init() są następujące:
      Kod i zasoby
      Kod i zasoby
    • Kody C dla funkcji _takeLVGLMutex(), _giveLVGLMutex() i setup_imgs(), w których ustawiane są lokalizacje wszystkich obrazów.
  7. Zamień kody w funkcji setup_imgs() na kody konfiguracji lokalizacji dla obrazów w pliku Resource_information_table.txt file (patrz rozdział 3.3).
    W tej notatce aplikacyjnej jest tylko jeden zasób obrazu, który jest skonfigurowany jako: _scan_example_597x460.data = (podstawa + 0); Po wykonaniu tej czynności funkcja setup_imgs() zostanie pokazana jak poniżej:
    Kod i zasoby
  8. Aby dodać definicję makra i deklarację funkcji związaną z plikiem niestandardowe.c, zmodyfikuj plik niestandardowy.h file w obszarze sln_smart_tlhmi_slider_progress_cm4 > niestandardowe, jak pokazano poniżej:
    Kod i zasoby
  9. Aby zdefiniować obrazy w aplikacji LVGL GUI, zmodyfikuj plik lvgl_images_internal.h file w obszarze sln_smart_tlhmi_slider_progress_cm4 > niestandardowe.
    • Otwórz jeden obraz *.c file (tutaj jest _scan_example_597x460.c) w katalogu /generated/image/ w projekcie GUI Guider.
      Skopiuj definicję obrazu na końcu pliku file. Wklej go do lvgl_images_internal.h file po usunięciu wszystkich oryginalnych definicji obrazów dla aplikacji windy.
    • Usuń .data = _scan_example_597x460_map w tablicy, ponieważ plik .data jest ustawiony w funkcji setup_imgs().
      Tablica jest ostatecznie zdefiniowana w pliku lvgl_images_internal.h file, jak pokazano poniżej:
      Kod i zasoby
      Uwaga:
      Powtórz powyższe operacje dla wszystkich obrazów files jeden po drugim, jeśli istnieje wiele obrazów files.
  10. Skonfiguruj całkowity rozmiar zasobu obrazu, definiując definicję makra APP_LVGL_IMGS_SIZE w pliku app_config.h file w obszarze sln_smart_tlhmi_slider_progress_cm7 > źródło z nowym rozmiarem obrazów.
    Ten nowy rozmiar jest dostępny w utworzonym zasobie Resource_information_table.txt file.

Dodaj urządzenia i konfiguracje HAL
W oparciu o architekturę frameworkową zaprojektowano dwa urządzenia HAL (urządzenia wyświetlające i wyjściowe) dla aplikacji LVGL GUI.
Implementacje tych dwóch urządzeń różnią się w zależności od różnych aplikacji LVGL GUI, chociaż istnieją dla nich wspólne projekty architektury.
Są one realizowane oddzielnie w dwóch files.
Dlatego musi sklonować oba files z obecnej aplikacji windy i zmodyfikuj aplikację LVGL GUI.
Następnie włącz swoje urządzenia w konfiguracji file.
Twoja aplikacja LVGL GUI jest zbudowana na inteligentnej platformie HMI opartej na frameworku.

Szczegółowych modyfikacji można dokonać w MCUXpresso IDE, jak pokazano poniżej:

  • Zaimplementuj urządzenie wyświetlające HAL
    1. Skopiuj i wklej plik hal_display_lvgl_elevator.c file w grupie sln_smart_tlhmi_slider_progress_cm4 > framework > hal > display w projekcie MCUXpresso. Zmień jego nazwę na hal_display_lvgl_sliderprogress.c dla swojej aplikacji.
    2. Otwórz file hal_display_lvgl_sliderprogress.c i zastąp wszystkie ciągi „winda” ciągiem aplikacji „SliderProgress” w file.
  • Zaimplementuj wyjściowe urządzenie HAL
    1. Skopiuj i wklej plik hal_output_ui_elevator.c file w grupie sln_smart_tlhmi_slider_progress_cm4 > framework > hal > dane wyjściowe w projekcie MCUXpresso. Zmień jego nazwę na hal_output_ui_sliderprogress.c dla swojej aplikacji.
    2. Otwórz file hal_output_ui_sliderprogress.c. Usuń wszystkie funkcje związane z aplikacją windy, z wyjątkiem następujących podstawowych, wspólnych funkcji urządzenia HAL:
      HAL_OutputDev_UiElevator_Init();
      HAL_OutputDev_UiElevator_Deinit();
      HAL_OutputDev_UiElevator_Start();
      HAL_OutputDev_UiElevator_Stop();
      HAL_OutputDev_UiElevator_InferComplete();
      HAL_OutputDev_UiElevator_InputNotify();
      Dodatkowo zarezerwuj deklaracje poniższych dwóch funkcji:
      APP_OutputDev_UiElevator_InferCompleteDecode();
      APP_OutputDev_UiElevator_InputNotifyDecode();
    3. Wyczyść funkcję HAL_OutputDev_UiElevator_InferComplete() w celu późniejszego zbudowania aplikacji.
      W funkcji usuń oba wywołania funkcji _InferComplete_Vision() i _InferComplete_Voice() używane do obsługi wyników algorytmów wizyjnych i głosowych dla aplikacji dźwigowych.
    4. Wyczyść funkcję HAL_OutputDev_UiElevator_InputNotify() i zachowaj podstawową architekturę do dalszego rozwoju aplikacji.
      Ostatecznie funkcja wygląda następująco:
      Kod i zasoby
    5. Usuń wszystkie deklaracje zmiennych, w tym wyliczenie i tablicę, z wyjątkiem tych s_UiSurface i s_AsBuffer[] używanych w typowych implementacjach.
    6. Zamień wszystkie ciągi „winda” na ciąg aplikacji „SliderProgress”.
  • Włącz i skonfiguruj oba urządzenia HAL
    1. Otwórz plik board_define.h file pod sln_smart_tlhmi_slider_progress_cm4 > board.
      Zastąp wszystkie ciągi „winda” ciągiem aplikacji „SliderProgress” w pliku file.
      Włącza i konfiguruje urządzenia wyświetlające i wyjściowe HAL według definicji ENABLE_DISPLAY_DEV_LVGLSliderProgress i ENABLE_OUTPUT_DEV_UiSliderProgress.
    2. Otwórz plik lvgl_support.c file pod sln_smart_tlhmi_slider_progress_cm4 > board. Zastąp wszystkie ciągi „winda” ciągiem aplikacji „SliderProgress” w pliku file.
      Umożliwia przedwzmacniacz aparatuview w GUI na poziomie sterownika ekranu.
  • Zarejestruj oba urządzenia HAL
    Otwórz główny plik sln_smart_tlhmi_cm4.cpp M4 file w obszarze sln_smart_tlhmi_slider_progress_cm4 > źródło.
    Zastąp wszystkie ciągi „winda” ciągiem aplikacji „SliderProgress” w pliku file.
    Rejestruje urządzenie wyświetlające i wyjściowe HAL dla Twojej aplikacji zamiast aplikacji windy.
    Dlatego integracja jest zakończona w celu uruchomienia podstawowej aplikacji LVGL GUI na inteligentnym HMI.
    W zależności od większych wymagań aplikacji można dodać więcej implementacji w oparciu o zintegrowaną aplikację podstawową.

Demonstracja

Wersja demonstracyjna aplikacji „slider_progress” jest zaimplementowana wraz z niniejszą notą aplikacyjną.

Po rozpakowaniu pakietu oprogramowania demonstracyjnego umieść poniższy plik files i folder do oprogramowania smart HMI:

  • Ten file hal_display_lvgl_sliderprpgress.c w [demo]\framework\hal\display\ do ścieżki [smart HMI]\framework\hal\display\
  • Ten file hal_output_ui_slider_progress.c w [demo]\framework\hal\output\ do ścieżki [smart HMI]\framework\hal\output\
  • Folder „slider_progress” do ścieżki głównej [smart HMI]\
    Projekty można otwierać w MCUXpresso IDE, podobnie jak aplikację ekspresu do kawy/windy prezentowaną na inteligentnej platformie HMI.
    Po zaprogramowaniu zbudowanego pliku *.axf file na adres 0x30100000 i plik binarny zasobu file na adres 0x30700000, demo LVGL GUI może pomyślnie działać na płycie rozwojowej inteligentnego HMI (zobacz rysunek 3 przedstawiający ekran).
    Notatka: Jeśli używasz wersji 1.7.0 MCUXpresso IDE, przed zbudowaniem projektu CM4 włącz opcję „Zarządzaj skryptem łącza” w Ustawieniach > MCU C++ Linker > Zarządzany skrypt linkera.
    Rysunek 3. Wyświetlacz demonstracyjny LVGL GUI na płycie rozwojowej inteligentnego HMI
    Wyświetlacz demonstracyjny

Historia rewizji

Historia wersji podsumowuje zmiany w tym dokumencie.

Tabela 1. Historia zmian

Numer wersjiDataZmiany merytoryczne
116 czerwca 2023Pierwsze wydanie

Uwaga dotycząca kodu źródłowego w dokumencie

Exampkod pliku pokazany w tym dokumencie jest objęty następującymi prawami autorskimi i licencją BSD-3-Clause:
Copyright 2023 NXP Redystrybucja i wykorzystanie w formie źródłowej i binarnej, z modyfikacjami lub bez, są dozwolone pod warunkiem spełnienia następujących warunków:

  1. Przy redystrybucji kodu źródłowego należy zachować powyższą informację o prawach autorskich, niniejszą listę warunków oraz poniższe wyłączenie odpowiedzialności.
  2. Redystrybucje w formie binarnej muszą zawierać powyższą informację o prawach autorskich, niniejszą listę warunków i następujące wyłączenie odpowiedzialności w dokumentacji i/lub innych materiałach muszą być dołączone do dystrybucji.
  3. Ani nazwisko właściciela praw autorskich, ani nazwiska jego współautorów nie mogą być używane do popierania lub promowania produktów wywodzących się z tego oprogramowania bez uprzedniej pisemnej zgody.

NINIEJSZE OPROGRAMOWANIE JEST DOSTARCZANE PRZEZ POSIADACZY PRAW AUTORSKICH I WSPÓŁCZYNNIKÓW „TAK JAK JEST” ORAZ WYŁĄCZA SIĘ WSZELKIE WYRAŹNE LUB DOROZUMIANE GWARANCJE, W TYM MIĘDZY INNYMI DOROZUMIANE GWARANCJE PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU.
W ŻADNYM WYPADKU POSIADACZ PRAW AUTORSKICH LUB WSPÓŁPRACOWCY NIE BĘDĄ ODPOWIEDZIALNI ZA JAKIEKOLWIEK BEZPOŚREDNIE, POŚREDNIE, PRZYPADKOWE, SPECJALNE, PRZYKŁADOWE LUB WYNIKOWE SZKODY (W TYM M.in. ZAKUPIENIE TOWARÓW LUB USŁUG ZAMIENNYCH, UTRATA UŻYTKOWANIA, DANYCH LUB ZYSKÓW; LUB PRZERWY W DZIAŁALNOŚCI) JAKICHKOLWIEK SPOWODOWANEJ I NA JAKIEJKOLWIEK TEORII ODPOWIEDZIALNOŚCI, ZWIĄZANEJ Z UMOWĄ, ŚCIŚŁĄ LUB DELIKTOWĄ (W TYM ZANIEDBANIA LUB INNEGO), WYNIKAJĄCEJ W JAKIKOLWIEK SPOSÓB Z KORZYSTANIA Z TEGO OPROGRAMOWANIA, NAWET W PRZYPADKU POWIADOMIENIA O MOŻLIWOŚCI TAKIEGO
SZKODA.

Informacje prawne

Definicje
Projekt:
Status wersji roboczej dokumentu wskazuje, że treść jest nadal pod kontrolą wewnętrznąview i podlega formalnemu zatwierdzeniu, co może skutkować modyfikacjami lub uzupełnieniami.
NXP Semiconductors nie składa żadnych oświadczeń ani zapewnień co do dokładności lub kompletności informacji zawartych w wersji roboczej dokumentu i nie ponosi żadnej odpowiedzialności za skutki wykorzystania takich informacji.

Zastrzeżenia
Ograniczona gwarancja i odpowiedzialność: Informacje zawarte w tym dokumencie uważa się za dokładne i wiarygodne.
Jednakże firma NXP Semiconductors nie składa żadnych oświadczeń ani gwarancji, wyraźnych ani dorozumianych, co do dokładności lub kompletności takich informacji i nie ponosi żadnej odpowiedzialności za konsekwencje wykorzystania takich informacji.
NXP Semiconductors nie ponosi odpowiedzialności za treść tego dokumentu, jeżeli została dostarczona przez źródło informacji spoza NXP Semiconductors.
W żadnym wypadku firma NXP Semiconductors nie ponosi odpowiedzialności za jakiekolwiek szkody pośrednie, przypadkowe, karne, specjalne lub wynikowe (w tym – bez ograniczeń – utracone zyski, utracone oszczędności, przerwy w działalności, koszty związane z usunięciem lub wymianą jakichkolwiek produktów lub opłatami za przeróbkę), niezależnie od tego, czy lub nie, takie odszkodowania są oparte na czynie niedozwolonym (w tym zaniedbaniu), gwarancji, naruszeniu umowy lub jakiejkolwiek innej teorii prawnej.
Niezależnie od jakichkolwiek szkód, które klient może ponieść z jakiegokolwiek powodu, łączna i skumulowana odpowiedzialność firmy NXP Semiconductors wobec klienta za produkty opisane w niniejszym dokumencie jest ograniczona zgodnie z Warunkami sprzedaży komercyjnej NXP Semiconductors.

Prawo do wprowadzania zmian: NXP Semiconductors zastrzega sobie prawo do wprowadzania zmian w informacjach opublikowanych w tym dokumencie, w tym między innymi w specyfikacjach i opisach produktów, w dowolnym czasie i bez powiadomienia.
Niniejszy dokument zastępuje i zastępuje wszystkie informacje dostarczone przed publikacją.

Przydatność do użytku: Produkty NXP Semiconductors nie są projektowane, autoryzowane ani nie gwarantuje się, że nadają się do stosowania w systemach lub sprzęcie podtrzymującym życie, systemach lub urządzeniach o krytycznym znaczeniu dla życia lub bezpieczeństwa, ani w zastosowaniach, w których można zasadnie oczekiwać, że awaria lub nieprawidłowe działanie produktu NXP Semiconductors będzie skutkować obrażeniami ciała obrażenia, śmierć lub poważne szkody w mieniu lub środowisku.
NXP Semiconductors i jej dostawcy nie ponoszą żadnej odpowiedzialności za włączenie i/lub wykorzystanie produktów NXP Semiconductors w takim sprzęcie lub zastosowaniach, dlatego też takie włączenie i/lub użycie odbywa się na własne ryzyko klienta.

Zastosowania: Zastosowania opisane w niniejszym dokumencie dla któregokolwiek z tych produktów służą wyłącznie celom ilustracyjnym.
NXP Semiconductors nie składa żadnych oświadczeń ani nie gwarantuje, że takie aplikacje będą odpowiednie do określonego zastosowania bez dalszych testów lub modyfikacji.
Klienci są odpowiedzialni za projektowanie i działanie swoich aplikacji i produktów wykorzystujących produkty NXP Semiconductors, a NXP Semiconductors nie ponosi żadnej odpowiedzialności za jakąkolwiek pomoc związaną z aplikacjami lub projektowaniem produktów klienta.
Klient ponosi wyłączną odpowiedzialność za określenie, czy produkt NXP Semiconductors jest odpowiedni i odpowiedni do zastosowań klienta i planowanych produktów, a także do planowanego zastosowania i użytkowania przez klientów zewnętrznych klienta.
Klienci powinni zapewnić odpowiednie zabezpieczenia projektowe i operacyjne, aby zminimalizować ryzyko związane z ich zastosowaniami i produktami.
NXP Semiconductors nie ponosi żadnej odpowiedzialności związanej z jakimikolwiek uchybieniami, szkodami, kosztami lub problemami wynikającymi z jakichkolwiek słabości lub uchybień w aplikacjach lub produktach klienta, bądź w zastosowaniach lub użytkowaniu przez klientów będących osobami trzecimi.
Klient jest odpowiedzialny za wykonanie wszystkich niezbędnych testów swoich aplikacji i produktów przy użyciu produktów NXP Semiconductors, aby uniknąć nieprawidłowego działania aplikacji i produktów, aplikacji lub użytkowania przez klientów zewnętrznych klienta. NXP nie ponosi żadnej odpowiedzialności w tym zakresie

Warunki sprzedaży komercyjnej: Produkty NXP Semiconductors są sprzedawane zgodnie z ogólnymi warunkami sprzedaży komercyjnej, opublikowanymi pod adresem http://www.nxp.com/profile/terms, chyba że w ważnej pisemnej umowie indywidualnej ustalono inaczej.
W przypadku zawarcia umowy indywidualnej obowiązują wyłącznie warunki danej umowy.
NXP Semiconductors niniejszym wyraźnie sprzeciwia się stosowaniu ogólnych warunków klienta w odniesieniu do zakupu produktów NXP Semiconductors przez klienta.

Kontrola eksportu: Niniejszy dokument, jak również elementy w nim opisane, mogą podlegać przepisom kontroli eksportu.
Eksport może wymagać uprzedniego zezwolenia właściwych organów.

Przydatność do stosowania w produktach niezwiązanych z branżą motoryzacyjną: O ile w tej karcie katalogowej wyraźnie nie określono, że ten konkretny produkt NXP Semiconductors jest zakwalifikowany do zastosowań motoryzacyjnych, produkt ten nie nadaje się do użytku w motoryzacji.
Nie jest kwalifikowany ani testowany zgodnie z wymaganiami testów motoryzacyjnych lub aplikacji. NXP Semiconductors nie ponosi żadnej odpowiedzialności za włączenie i/lub wykorzystanie zakwalifikowanych produktów innych niż motoryzacyjne w sprzęcie lub zastosowaniach motoryzacyjnych.
W przypadku, gdy klient używa produktu do projektowania i użytkowania w zastosowaniach motoryzacyjnych zgodnie ze specyfikacjami i standardami motoryzacyjnymi, klient (a) będzie używał produktu bez gwarancji NXP Semiconductors na produkt do takich zastosowań motoryzacyjnych, użytkowania i specyfikacji oraz ( b) za każdym razem, gdy klient używa produktu do zastosowań motoryzacyjnych wykraczających poza specyfikacje NXP Semiconductors, takie użytkowanie odbywa się wyłącznie na własne ryzyko klienta oraz (c) klient w pełni zwalnia firmę NXP Semiconductors z wszelkiej odpowiedzialności, szkód lub roszczeń dotyczących nieudanego produktu wynikających z zaprojektowania i użytkowania przez klienta produkt do zastosowań motoryzacyjnych poza standardową gwarancją NXP Semiconductors i specyfikacjami produktów NXP Semiconductors.

Tłumaczenia: Wersja dokumentu w języku innym niż angielski (przetłumaczona), zawierająca zawarte w nim informacje prawne, ma wyłącznie charakter poglądowy.
W przypadku rozbieżności pomiędzy wersją przetłumaczoną a wersją angielską, wersja angielska ma pierwszeństwo.

Bezpieczeństwo: Klient rozumie, że wszystkie produkty NXP mogą zawierać niezidentyfikowane luki w zabezpieczeniach lub mogą obsługiwać ustalone standardy lub specyfikacje bezpieczeństwa ze znanymi ograniczeniami.
Klient jest odpowiedzialny za projektowanie i działanie swoich aplikacji i produktów przez cały cykl ich życia, aby ograniczyć wpływ tych luk na aplikacje i produkty klienta.
Odpowiedzialność klienta rozciąga się także na inne otwarte i/lub zastrzeżone technologie obsługiwane przez produkty NXP do wykorzystania w aplikacjach klienta.
NXP nie ponosi żadnej odpowiedzialności za jakiekolwiek luki w zabezpieczeniach.
Klient powinien regularnie sprawdzać aktualizacje zabezpieczeń oferowane przez NXP i podejmować odpowiednie działania następcze.
Klient wybierze produkty z funkcjami bezpieczeństwa, które najlepiej spełniają zasady, przepisy i normy zamierzonego zastosowania oraz podejmie ostateczne decyzje projektowe dotyczące swoich produktów i ponosi wyłączną odpowiedzialność za zgodność ze wszystkimi wymaganiami prawnymi, regulacyjnymi i związanymi z bezpieczeństwem dotyczącymi swoich produktów, niezależnie od wszelkich informacji lub wsparcia, które może zapewnić NXP.
NXP posiada zespół reagowania na incydenty związane z bezpieczeństwem produktów (PSIRT) (dostępny pod adresem PSIRT@nxp.com), który zarządza badaniem, raportowaniem i wydawaniem rozwiązań dotyczących luk w zabezpieczeniach produktów NXP.

NXP BV: NXP BV nie jest spółką operacyjną i nie zajmuje się dystrybucją ani sprzedażą produktów.

Znaki towarowe

Ogłoszenie: Wszystkie wymienione marki, nazwy produktów, nazwy usług i znaki towarowe są własnością ich odpowiednich właścicieli.
NXP-ka: znak słowny i logo są znakami towarowymi NXP BV
i.MX: jest znakiem towarowym NXP BV

WSPARCIE KLIENTA

Więcej informacji znajdziesz na stronie: http://www.nxp.com
logo.png

Dokumenty / Zasoby

NXP AN13948 Integracja aplikacji LVGL GUI z platformą Smart HMI [plik PDF] Instrukcja obsługi
AN13948 Integracja aplikacji LVGL GUI z inteligentną platformą HMI, AN13948, Integracja aplikacji LVGL GUI z inteligentną platformą HMI

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *