Hướng dẫn sử dụng NXP AN13948 Tích hợp ứng dụng GUI LVGL vào Nền tảng HMI thông minh
Giới thiệu
NXP đã ra mắt bộ công cụ phát triển giải pháp có tên SLN-TLHMI-IOT. Nó tập trung vào các ứng dụng HMI thông minh có chứa hai ứng dụng – máy pha cà phê và thang máy (ứng dụng bảng điều khiển thông minh sắp ra mắt).
Để cung cấp thông tin cho người dùng, một số tài liệu cơ bản được bao gồm, ví dụ:ample, hướng dẫn dành cho nhà phát triển.
Hướng dẫn này giới thiệu kiến trúc và thiết kế phần mềm cơ bản của các ứng dụng bao gồm tất cả các thành phần giải pháp.
Các thành phần này bao gồm bộ tải khởi động, khung và thiết kế HAL để giúp các nhà phát triển triển khai các ứng dụng của họ dễ dàng và hiệu quả hơn bằng cách sử dụng SLN-TLHMI-IOT.
Để biết thêm chi tiết về các tài liệu và giải pháp, hãy truy cập: Giải pháp HMI thông minh NXP EdgeReady dựa trên i.MX RT117H với ML Vision, Voice và Graphical UI.
Tuy nhiên, phần giới thiệu tập trung vào các ý tưởng và cách sử dụng cơ bản. Do sự tuân thủ của phần mềm dựa trên khung, các nhà phát triển vẫn không dễ dàng biết cách triển khai các ứng dụng của họ.
Để tăng tốc độ phát triển, cần có các hướng dẫn bổ sung để giới thiệu cách triển khai các thành phần chính (ví dụ:ample, LVGL GUI, tầm nhìn và nhận dạng giọng nói) từng bước.
Ví dụample, khách hàng nên có ứng dụng LVGL GUI của riêng họ khác với các ứng dụng hiện có trong giải pháp.
Sau khi triển khai GUI LVGL của họ với GUI Guider do NXP cung cấp, họ phải tích hợp nó vào nền tảng phần mềm HMI thông minh dựa trên khung.
Ghi chú ứng dụng này mô tả cách tích hợp ứng dụng LVGL GUI do người dùng phát triển vào nền phần mềm HMI thông minh dựa trên khung.
Các mã tham chiếu cũng được trình bày cùng với ghi chú ứng dụng này.
Ghi chú: Lưu ý ứng dụng này không giải thích cách phát triển GUI dựa trên LVGL bằng công cụ phần mềm GUI Guider.
Cái trênview của LVGL và GUI Guider được mô tả trong Phần 1.1 và Phần 1.2.
Thư viện đồ họa nhẹ và đa năng
Thư viện đồ họa nhẹ và đa năng (LVGL) là một thư viện đồ họa mã nguồn mở và miễn phí.
Nó cung cấp mọi thứ bạn cần để tạo GUI nhúng với các thành phần đồ họa dễ sử dụng, hiệu ứng hình ảnh đẹp mắt và dung lượng bộ nhớ thấp.
Hướng dẫn GUI
GUI Guider là một công cụ phát triển giao diện người dùng đồ họa thân thiện với người dùng của NXP, cho phép phát triển nhanh chóng các màn hình chất lượng cao với thư viện đồ họa LVGL mã nguồn mở.
Trình chỉnh sửa kéo và thả của GUI Guider giúp dễ dàng sử dụng nhiều tính năng của LVGL. Các tính năng này bao gồm các tiện ích con, hoạt ảnh và kiểu dáng để tạo GUI với mã hóa tối thiểu hoặc không cần mã hóa.
Chỉ với một nút bấm, bạn có thể chạy ứng dụng của mình trong môi trường mô phỏng hoặc xuất nó sang một dự án mục tiêu.
Có thể dễ dàng thêm mã được tạo từ GUI Guider vào dự án của bạn, tăng tốc quá trình phát triển và cho phép bạn thêm giao diện người dùng nhúng vào ứng dụng của mình một cách liền mạch.
GUI Guider được sử dụng miễn phí với các MCU đa năng và mục đích chung của NXP, đồng thời bao gồm các mẫu dự án tích hợp sẵn cho một số nền tảng được hỗ trợ.
Để tìm hiểu thêm về LVGL và phát triển GUI trên GUI Guider, hãy truy cập https://lvgl.io/ và GUI Guider.
Môi trương phat triển
Chuẩn bị và thiết lập môi trường phát triển để phát triển và tích hợp ứng dụng GUI vào nền tảng HMI thông minh.
Môi trường phần cứng
Cần có phần cứng sau để trình diễn sau khi phát triển:
- Bộ công cụ phát triển HMI thông minh dựa trên NXP i.MX RT117H
- SEGGER J-Link với bộ điều hợp Cortex-M 9 chân
Môi trường phần mềm
Các công cụ phần mềm và phiên bản của chúng được sử dụng trong ghi chú ứng dụng này được giới thiệu như sau:
- Hướng dẫn GUI V1.5.0-GA
- MCUXpresso IDE V11.7.0
Ghi chú: Một lỗi trong các phiên bản trước 11.7.0 không cho phép các dự án đa lõi tích hợp phù hợp.
Do đó, phiên bản 11.7.0 trở lên là bắt buộc. - SDK RT1170 V2.12.1
- Nền tảng phần mềm SLN-TLHMI-IOT – mã nguồn HMI thông minh được phát hành trong kho lưu trữ GitHub chính thức của chúng tôi
Để tìm hiểu thêm về cách thiết lập và cài đặt môi trường phần cứng và phần mềm, hãy xem Bắt đầu với SLN-TLHMI-IOT (tài liệu MCU-SMHMI-GSG).
Tích hợp ứng dụng LVGL GUI vào nền tảng HMI thông minh
Nền tảng phần mềm HMI thông minh được xây dựng trên kiến trúc framework. Các nhà phát triển gặp khó khăn khi thêm ứng dụng GUI LVGL của họ vào nền tảng phần mềm HMI thông minh ngay cả khi họ đã đọc hướng dẫn dành cho nhà phát triển và biết về khuôn khổ.
Các phần tiếp theo giải thích cách triển khai từng bước.
Phát triển ứng dụng LVGL GUI trên GUI Guider
Như đã đề cập ở trên, cách phát triển GUI LVGL trên GUI Guider không phải là trọng tâm trong ghi chú ứng dụng này.
Nhưng một GUI cũamplà cần thiết.
Do đó, một mẫu GUI đơn giản có tên Slider Progress được cung cấp trong GUI Guider được chọn làm GUI example để thiết lập nhanh.
Mẫu GUI Slider Progress được sử dụng vì nó chứa một hình ảnh được yêu cầu để chứng minh tài nguyên hình ảnh tòa nhà trong ứng dụng.
GUI cũample rất dễ tạo: Để tạo dự án với thư viện LVGL V8.3.2 được cập nhật và mẫu bo mạch là MIMXRT1176xxxxx, hãy tham khảo Hướng dẫn sử dụng GUI Guider (tài liệu HƯỚNG DẪN).
Hình 1 cho thấy các cài đặt dự án.
Ghi chú: Phải chọn loại bảng điều khiển, như thể hiện trong hộp màu đỏ trong Hình 1, vì nó được sử dụng trên bo mạch phát triển hiện tại.
Sau khi tạo dự án, hãy chạy trình mô phỏng để tạo mã GUI LVGL có liên quan và xây dựng dự án.
Bạn có thể kiểm tra tác dụng của GUI cũamptập tin trên trình giả lập.
Hình 1. Thiết lập dự án GUI trên GUI Guider
Tạo dự án của bạn trên HMI thông minh
Ghi chú: Đầu tiên, tạo dự án của bạn trên MCUXpresso IDE.
Sau LVGL GUI cũample đã được xây dựng, nó có thể đi đến mục tiêu chính để tích hợp nó vào nền tảng phần mềm HMI thông minh trên dự án MCUXpresso để triển khai ứng dụng GUI của bạn.
Phương pháp đơn giản và nhanh chóng là sao chép dự án ứng dụng hiện tại được trình bày trên nền tảng HMI thông minh.
Ứng dụng thang máy là lựa chọn tốt hơn làm nguồn nhân bản vì nó có cách triển khai đơn giản.
Để tạo dự án của bạn, hãy làm theo các bước dưới đây:
- Sao chép và dán thư mục “thang máy” trong mã nguồn HMI thông minh nhân bản từ GitHub. Đổi tên nó thành của bạn.
Đối với ex nàyample, chúng tôi đã chọn “slider_progress”, theo tên của GUI cũamplà. - Trong thư mục “slider_progress”, nhập thư mục “lvgl_vglite_lib” chứa dự án LVGL GUI.
- Mở liên quan đến dự án files .cproject và .project và thay thế tất cả chuỗi “elevator” bằng chuỗi tên dự án của bạn “slider_progress”.
- Thực hiện thay thế tương tự cho cả hai dự án files trong các thư mục “cm4” và “cm7”.
Thiết lập dự án của bạn bằng cách nhân bản dự án thang máy files.
Như thể hiện trong Hình 2 các dự án của bạn hiện có thể được mở trong MCUXpresso IDE theo cách tương tự như dự án thang máy.
Hình 2. Thiết lập dự án trên MCUXpresso
Xây dựng tài nguyên cho HMI thông minh
Nói chung, hình ảnh được sử dụng trong GUI (âm thanh cũng được sử dụng trong lời nhắc bằng giọng nói).
Hình ảnh và âm thanh được gọi là tài nguyên, được lưu trữ trong nháy mắt theo trình tự. Trước khi lập trình chúng trên flash, các tài nguyên phải được tích hợp thành tệp nhị phân file.
Công việc chính là thay thế tên của ứng dụng tham chiếu (thang máy) bằng tên của bạn.
Để thực hiện, hãy làm theo các bước dưới đây:
- Xóa thư mục “hình ảnh” được nhân bản trong thanh trượt_progress/resource.
- Sao chép thư mục “hình ảnh” trong \generated trong dự án GUI Guider của bạn.
- Dán nó dưới slider_progress/resource (Nghĩa là, sử dụng hình ảnh của riêng bạn thay vì hình ảnh từ ứng dụng thang máy.).
- Xóa *.mk file được sử dụng cho GUI Guider trong thư mục “hình ảnh”.
- Đổi tên files.
Nhận xét:- lift_resource.txt: chứa đường dẫn và tên của tất cả tài nguyên (hình ảnh và âm thanh) được sử dụng trong ứng dụng.
- lift_resource_build.bat/elevator_resource_build.sh: được sử dụng để xây dựng tài nguyên trong Windows và Linux tương ứng.
- Sau khi mở slider_progress_resource.txt file, thay thế tất cả các chuỗi “elevator” bằng “slider_progress”.
- Xóa tất cả hình ảnh cũ và thêm hình ảnh mới với hình ảnh của bạn file tên (ở đây là “_scan_example_597x460.c”), chẳng hạn như hình ảnh ../../slider_progress/resource/images/_scan_example_597x460.c.
- Mở slider_progress_resource.bat file cho Windows và thay thế tất cả các chuỗi “elevator” bằng “slider_progress”. Làm tương tự với file slider_progress_resource.sh dành cho Linux.
- Bấm đúp vào lô file slider_progress_resource_build.bat cho Windows.
- Cửa sổ lệnh xuất hiện và tự động chạy để tạo nhị phân tài nguyên ảnh file chứa dữ liệu hình ảnh và thông tin truy cập tài nguyên chứa mã C để đặt tất cả các vị trí hình ảnh trong flash và tổng kích thước byte của hình ảnh.
Sau khi hiển thị thông báo "Hoàn thành tạo tài nguyên!", tệp nhị phân tài nguyên hình ảnh file có tên là slider_progress_resource.bin và thông tin truy cập tài nguyên file có tên resource_information_table.txt được tạo trong thư mục “resource”.
Tài nguyên hình ảnh nhị phân file được lập trình trên flash và thông tin truy cập tài nguyên được sử dụng để truy cập tài nguyên trên HMI thông minh (xem Phần 3.4.1).
Tích hợp ứng dụng GUI LVGL vào HMI thông minh
Các mã ứng dụng LVGL GUI (ở đây là SliderProgress GUI example) và các tài nguyên hình ảnh được xây dựng, bao gồm cả thông tin truy cập, có thể được thêm vào HMI thông minh.
Ngoài ra, để triển khai ứng dụng LVGL GUI của bạn trên HMI thông minh, cần phải thêm các thiết bị HAL liên quan đến LVGL GUI và các cấu hình liên quan.
Ứng dụng GUI LVGL đang chạy trên lõi M4 và việc triển khai liên quan gần như nằm trong dự án M4 “sln_smart_tlhmi_slider_progress_cm4”.
Các bước chi tiết được mô tả trong các phần phụ khác.
Thêm mã và tài nguyên GUI LVGL
Các mã ứng dụng GUI LVGL được sử dụng cho HMI thông minh nằm trong các thư mục “tùy chỉnh” và “được tạo” trong dự án Trình hướng dẫn GUI.
Để thêm mã vào HMI thông minh, hãy làm theo các bước sau:
- Thay thế custom.c và custom.h bên dưới slider_progress/cm4/custom/ bằng những cái trong thư mục “custom” trong dự án GUI Guider.
- Xóa các thư mục “đã tạo” khỏi slider_progress/cm4/.
Sau đó sao chép thư mục “đã tạo” từ dự án GUI Guider và dán nó vào slider_progress/cm4/. - Xóa các thư mục “hình ảnh” và “mPythonImages” và tất cả các files *.mk và *.py trong thư mục “được tạo”.
Như đã đề cập ở trên, các hình ảnh trong thư mục “hình ảnh” được tích hợp vào tệp nhị phân tài nguyên file, vì vậy thư mục “hình ảnh” là không cần thiết.
Thư mục “mPythonImages” và tất cả các files *.mk và *.py không mong muốn đối với HMI thông minh. - Để thêm điều khiển mutex dựa trên nền tảng HMI thông minh và đặt vị trí hình ảnh trên đèn flash, hãy sửa đổi file custom.c trên MCUXpresso IDE.
Tất cả đều được xác định bởi RT_PLATFORM. - Mở dự án thang máy trên MCUXpresso IDE. Tìm kiếm định nghĩa macro RT_PLATFORM trong custom.c bên dưới sln_smart_tlhmi_elevator_cm4 > custom và sao chép tất cả các dòng mã từ #if đã xác định(RT_PLATFORM) sang #endif và dán chúng vào file custom.c trong sln_smart_tlhmi_slider_progress_cm4 > custom.
- Xóa các dòng mã bên dưới #else chứa #else vì chúng được sử dụng cho GUI thang máy.
Các dòng mã bổ sung bao gồm những điều sau đây:
- bao gồm files như sau:
- Việc khai báo biến như sau:
- Mã C trong hàm custom_init() như sau:
- Mã C cho các hàm _takeLVGLMutex(), _giveLVGLMutex() và setup_imgs() nơi đặt vị trí của tất cả các hình ảnh.
- bao gồm files như sau:
- Thay thế mã trong hàm setup_imgs() bằng mã thiết lập vị trí cho hình ảnh trong resource_information_table.txt file (xem Phần 3.3).
Trong ghi chú ứng dụng này, chỉ có một tài nguyên hình ảnh được thiết lập là: _scan_example_597x460.data = (cơ sở + 0); Sau khi thực hiện, hàm setup_imgs() được hiển thị như bên dưới:
- Để thêm định nghĩa macro và khai báo hàm liên quan đến custom.c, hãy sửa đổi custom.h file bên dưới sln_smart_tlhmi_slider_progress_cm4 > tùy chỉnh, như hình bên dưới:
- Để xác định hình ảnh trong ứng dụng GUI LVGL của bạn, hãy sửa đổi lvgl_images_internal.h file trong sln_smart_tlhmi_slider_progress_cm4 > tùy chỉnh.
- Mở một hình ảnh *.c file (đây là _scan_example_597x460.c) trong /generated/ image/ trong dự án GUI Guider.
Sao chép định nghĩa hình ảnh ở cuối file. Dán nó vào lvgl_images_internal.h file sau khi xóa tất cả các định nghĩa ban đầu về hình ảnh cho ứng dụng thang máy. - Xóa .data = _scan_example_597x460_map trong mảng vì .data được đặt trong hàm setup_imgs().
Mảng được xác định cuối cùng trong lvgl_images_internal.h file, như được hiển thị bên dưới:
Nhận xét: Lặp lại các thao tác trên cho tất cả các hình ảnh files từng cái một nếu có nhiều hình ảnh files.
- Mở một hình ảnh *.c file (đây là _scan_example_597x460.c) trong /generated/ image/ trong dự án GUI Guider.
- Định cấu hình tổng kích thước của tài nguyên hình ảnh bằng cách xác định định nghĩa macro APP_LVGL_IMGS_SIZE trong app_config.h file bên dưới sln_smart_tlhmi_slider_progress_cm7 > nguồn với kích thước mới của hình ảnh.
Kích thước mới này có sẵn trong tài nguyên được xây dựng resource_information_table.txt file.
Thêm các thiết bị và cấu hình HAL
Dựa trên kiến trúc khung, hai thiết bị HAL (thiết bị hiển thị và đầu ra) được thiết kế cho ứng dụng GUI LVGL.
Việc triển khai hai thiết bị là khác nhau tùy thuộc vào các ứng dụng GUI LVGL khác nhau mặc dù có các thiết kế kiến trúc chung cho chúng.
Chúng được thực hiện riêng biệt trong hai files.
Do đó, nó phải sao chép cả hai files khỏi ứng dụng thang máy hiện tại và sửa đổi ứng dụng GUI LVGL của bạn.
Sau đó, bật thiết bị của bạn trong cấu hình file.
Ứng dụng GUI LVGL của bạn được xây dựng trên nền tảng HMI thông minh dựa trên khung.
Các sửa đổi chi tiết có thể được thực hiện trong MCUXpresso IDE, như hình dưới đây:
- Triển khai thiết bị HAL hiển thị
- Sao chép và dán hal_display_lvgl_elevator.c file trong nhóm sln_smart_tlhmi_slider_progress_cm4 > framework > hal > display trên dự án MCUXpresso. Đổi tên nó thành hal_display_lvgl_sliderprogress.c cho ứng dụng của bạn.
- Mở file hal_display_lvgl_sliderprogress.c và thay thế tất cả các chuỗi “elevator” bằng chuỗi ứng dụng của bạn “SliderProgress” trong file.
- Triển khai thiết bị HAL đầu ra
- Sao chép và dán hal_output_ui_elevator.c file trong nhóm sln_smart_tlhmi_slider_progress_cm4 > framework > hal > đầu ra trên dự án MCUXpresso. Đổi tên nó thành hal_output_ui_sliderprogress.c cho ứng dụng của bạn.
- Mở file hal_output_ui_sliderprogress.c. Bỏ tất cả các chức năng liên quan đến ứng dụng thang máy trừ các chức năng chung cơ bản sau của thiết bị 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();
Ngoài ra, hãy bảo lưu phần khai báo của hai hàm dưới đây:
APP_OutputDev_UiElevator_InferCompleteDecode();
APP_OutputDev_UiElevator_InputNotifyDecode(); - Làm sạch hàm HAL_OutputDev_UiElevator_InferComplete() để xây dựng ứng dụng của bạn sau này.
Trong hàm, hãy xóa cả hai lệnh gọi hàm _InferComplete_Vision() và _InferComplete_Voice() được sử dụng để xử lý kết quả từ thuật toán hình ảnh và giọng nói cho ứng dụng thang máy. - Làm sạch chức năng HAL_OutputDev_UiElevator_InputNotify() và giữ kiến trúc cơ bản để phát triển ứng dụng hơn nữa.
Cuối cùng, chức năng trông như sau:
- Xóa tất cả các khai báo biến, bao gồm enum và mảng, ngoại trừ các khai báo s_UiSurface và s_AsBuffer[] được sử dụng cho các triển khai chung.
- Thay thế tất cả các chuỗi “elevator” bằng chuỗi ứng dụng của bạn “SliderProgress”.
- Bật và định cấu hình cả hai thiết bị HAL
- Mở board_define.h file bên dưới sln_smart_tlhmi_slider_progress_cm4 > board.
Thay thế tất cả các chuỗi "elevator" bằng chuỗi ứng dụng của bạn "SliderProgress" trong file.
Nó cho phép và định cấu hình các thiết bị HAL hiển thị và đầu ra theo định nghĩa ENABLE_DISPLAY_DEV_LVGLSliderProgress và ENABLE_OUTPUT_DEV_UiSliderProgress. - Mở lvgl_support.c file bên dưới sln_smart_tlhmi_slider_progress_cm4 > board. Thay thế tất cả các chuỗi "elevator" bằng chuỗi ứng dụng của bạn "SliderProgress" trong file.
Nó cho phép máy ảnh trướcview trên GUI ở cấp trình điều khiển hiển thị.
- Mở board_define.h file bên dưới sln_smart_tlhmi_slider_progress_cm4 > board.
- Đăng ký cả hai thiết bị HAL
Mở sln_smart_tlhmi_cm4.cpp chính của M4 file bên dưới sln_smart_tlhmi_slider_progress_cm4 > nguồn.
Thay thế tất cả các chuỗi "elevator" bằng chuỗi ứng dụng của bạn "SliderProgress" trong file.
Nó đăng ký thiết bị HAL hiển thị và đầu ra cho ứng dụng của bạn thay vì ứng dụng thang máy.
Do đó, việc tích hợp đã hoàn tất để chạy ứng dụng GUI LVGL cơ bản trên HMI thông minh.
Tùy thuộc vào nhiều yêu cầu hơn cho ứng dụng, nhiều triển khai hơn có thể được thêm vào dựa trên ứng dụng cơ bản được tích hợp.
Biểu tình
Bản trình diễn ứng dụng “slider_progress” được triển khai cùng với ghi chú ứng dụng này.
Sau khi giải nén gói phần mềm demo, hãy đặt bên dưới files và thư mục vào phần mềm HMI thông minh:
- Các file hal_display_lvgl_sliderprpgress.c trong [demo]\framework\hal\display\ tới đường dẫn [smart HMI]\framework\hal\display\
- Các file hal_output_ui_slider_progress.c trong [demo]\framework\hal\output\ đến đường dẫn [HMI thông minh]\framework\hal\output\
- Thư mục “slider_progress” đến đường dẫn gốc của [smart HMI]\
Các dự án có thể được mở trên MCUXpresso IDE, giống như ứng dụng máy pha cà phê/thang máy được trình bày trên nền tảng HMI thông minh.
Sau khi lập trình *.axf được xây dựng file đến địa chỉ 0x30100000 và nhị phân tài nguyên file đến địa chỉ 0x30700000, bản trình diễn GUI LVGL có thể chạy thành công trên bảng phát triển HMI thông minh (xem Hình 3 để biết màn hình hiển thị).
Ghi chú: Nếu sử dụng phiên bản 1.7.0 của MCUXpresso IDE, hãy bật “Quản lý tập lệnh liên kết” trong Cài đặt > Trình liên kết MCU C++ > Tập lệnh liên kết được quản lý trước khi xây dựng dự án CM4.
Hình 3. Màn hình demo LVGL GUI trên bảng phát triển HMI thông minh
Lịch sử sửa đổi
Lịch sử sửa đổi tóm tắt các sửa đổi đối với tài liệu này.
Bảng 1. Lịch sử sửa đổi
Số sửa đổi | Ngày | Những thay đổi cơ bản |
1 | Ngày 16 tháng 2023 năm XNUMX | Bản phát hành đầu tiên |
Lưu ý về mã nguồn trong tài liệu
Exampmã hiển thị trong tài liệu này có bản quyền và giấy phép BSD-3-Khoản sau:
Bản quyền 2023 NXP Việc phân phối lại và sử dụng ở dạng nguồn và dạng nhị phân, có hoặc không có sửa đổi, được cho phép với điều kiện đáp ứng các điều kiện sau:
- Việc phân phối lại mã nguồn phải giữ nguyên thông báo bản quyền ở trên, danh sách các điều kiện này và tuyên bố từ chối trách nhiệm sau đây.
- Việc phân phối lại ở dạng nhị phân phải sao chép thông báo bản quyền ở trên, danh sách các điều kiện này và tuyên bố từ chối trách nhiệm sau đây trong tài liệu và/hoặc các tài liệu khác phải được cung cấp cùng với việc phân phối.
- Không được sử dụng tên của chủ sở hữu bản quyền hoặc tên của những người đóng góp để xác nhận hoặc quảng bá các sản phẩm bắt nguồn từ phần mềm này mà không có sự cho phép trước bằng văn bản cụ thể.
PHẦN MỀM NÀY ĐƯỢC CUNG CẤP BỞI CHỦ BẢN QUYỀN VÀ CÁC NHÀ ĐÓNG GÓP “NGUYÊN TRẠNG” VÀ BẤT KỲ BẢO ĐẢM RÕ RÀNG HOẶC NGỤ Ý, BAO GỒM, NHƯNG KHÔNG GIỚI HẠN, CÁC BẢO ĐẢM NGẪU NHIÊN VỀ KHẢ NĂNG LAO ĐỘNG VÀ PHÙ HỢP VỚI MỤC ĐÍCH CỤ THỂ ĐƯỢC TỪ CHỐI.
TRONG MỌI TRƯỜNG HỢP NGƯỜI GIỮ BẢN QUYỀN HOẶC NGƯỜI CỘNG TÁC SẼ KHÔNG CHỊU TRÁCH NHIỆM PHÁP LÝ VỀ BẤT KỲ THIỆT HẠI TRỰC TIẾP, GIÁN TIẾP, NGẪU NHIÊN, ĐẶC BIỆT, ĐIỂN HÌNH HOẶC DO HẬU QUẢ (BAO GỒM NHƯNG KHÔNG GIỚI HẠN Ở VIỆC MUA HÀNG HÓA HOẶC DỊCH VỤ THAY THẾ; MẤT SỬ DỤNG, DỮ LIỆU HOẶC LỢI NHUẬN; HOẶC GIÁN ĐOẠN KINH DOANH) TUY NHIÊN DO NGUYÊN NHÂN VÀ DƯỚI BẤT KỲ LÝ THUYẾT VỀ TRÁCH NHIỆM PHÁP LÝ NÀO, DÙ TRONG HỢP ĐỒNG, TRÁCH NHIỆM PHÁP LÝ NGHIÊM NGẶT HOẶC BẮT BUỘC (BAO GỒM SƠ SUẤT HAY CÁCH NÀO) PHÁT SINH TRONG BẤT KỲ CÁCH NÀO NGOÀI VIỆC SỬ DỤNG PHẦN MỀM NÀY, NGAY CẢ NẾU ĐƯỢC TƯ VẤN VỀ KHẢ NĂNG NHƯ VẬY
HƯ HẠI.
Thông tin pháp lý
Định nghĩa
Bản nháp: Trạng thái bản nháp trên một tài liệu cho biết rằng nội dung vẫn thuộc nội bộview và phải được phê duyệt chính thức, có thể dẫn đến sửa đổi hoặc bổ sung.
NXP Semiconductors không đưa ra bất kỳ tuyên bố hay bảo đảm nào về tính chính xác hoặc đầy đủ của thông tin có trong phiên bản dự thảo của tài liệu và sẽ không chịu trách nhiệm về hậu quả của việc sử dụng thông tin đó.
Tuyên bố miễn trừ trách nhiệm
Bảo hành có giới hạn và trách nhiệm pháp lý: Thông tin trong tài liệu này được cho là chính xác và đáng tin cậy.
Tuy nhiên, NXP Semiconductors không đưa ra bất kỳ tuyên bố hay bảo đảm nào, rõ ràng hay ngụ ý, về tính chính xác hoặc đầy đủ của thông tin đó và sẽ không chịu trách nhiệm về hậu quả của việc sử dụng thông tin đó.
NXP Semiconductors không chịu trách nhiệm về nội dung trong tài liệu này nếu được cung cấp bởi một nguồn thông tin bên ngoài NXP Semiconductors.
Trong mọi trường hợp, NXP Semiconductors sẽ không chịu trách nhiệm pháp lý đối với bất kỳ thiệt hại gián tiếp, ngẫu nhiên, trừng phạt, đặc biệt hoặc do hậu quả nào (bao gồm - nhưng không giới hạn - lợi nhuận bị mất, khoản tiết kiệm bị mất, gián đoạn kinh doanh, chi phí liên quan đến việc loại bỏ hoặc thay thế bất kỳ sản phẩm nào hoặc phí làm lại) cho dù hoặc không phải những thiệt hại đó dựa trên hành vi sai trái (bao gồm cả sơ suất), bảo hành, vi phạm hợp đồng hoặc bất kỳ lý thuyết pháp lý nào khác.
Bất chấp mọi thiệt hại mà khách hàng có thể phải chịu vì bất kỳ lý do gì, trách nhiệm tổng hợp và tích lũy của NXP Semiconductors đối với khách hàng đối với các sản phẩm được mô tả ở đây sẽ bị giới hạn theo các Điều khoản và điều kiện bán thương mại của NXP Semiconductors.
Quyền thực hiện các thay đổi: NXP Semiconductors bảo lưu quyền thay đổi thông tin được công bố trong tài liệu này, bao gồm nhưng không giới hạn các thông số kỹ thuật và mô tả sản phẩm, bất kỳ lúc nào và không cần thông báo.
Tài liệu này thay thế và thay thế tất cả thông tin được cung cấp trước khi xuất bản tài liệu này.
Sự phù hợp để sử dụng: Các sản phẩm của NXP Semiconductors không được thiết kế, cấp phép hoặc bảo hành để phù hợp sử dụng trong các hệ thống hoặc thiết bị hỗ trợ sự sống, quan trọng về tính mạng hoặc an toàn, cũng như trong các ứng dụng mà sự cố hoặc trục trặc của sản phẩm NXP Semiconductors có thể được cho là sẽ dẫn đến tổn thương cá nhân. thương tích, tử vong hoặc thiệt hại nghiêm trọng về tài sản hoặc môi trường.
NXP Semiconductors và các nhà cung cấp của nó không chịu trách nhiệm pháp lý đối với việc đưa vào và/hoặc sử dụng các sản phẩm của NXP Semiconductors trong các thiết bị hoặc ứng dụng đó và do đó, việc đưa vào và/hoặc sử dụng đó là rủi ro của chính khách hàng.
Ứng dụng: Các ứng dụng được mô tả ở đây cho bất kỳ sản phẩm nào trong số này chỉ nhằm mục đích minh họa.
NXP Semiconductors không tuyên bố hoặc bảo đảm rằng các ứng dụng đó sẽ phù hợp với mục đích sử dụng cụ thể mà không cần thử nghiệm hoặc sửa đổi thêm.
Khách hàng chịu trách nhiệm về thiết kế và vận hành các ứng dụng và sản phẩm của họ bằng cách sử dụng các sản phẩm của NXP Semiconductors và NXP Semiconductors không chịu trách nhiệm pháp lý đối với bất kỳ hỗ trợ nào về ứng dụng hoặc thiết kế sản phẩm của khách hàng.
Khách hàng hoàn toàn chịu trách nhiệm xác định xem sản phẩm NXP Semiconductors có phù hợp và phù hợp với các ứng dụng và sản phẩm được lên kế hoạch của khách hàng hay không, cũng như cho ứng dụng và việc sử dụng được lên kế hoạch của (các) khách hàng bên thứ ba của khách hàng.
Khách hàng nên cung cấp các biện pháp bảo vệ thiết kế và vận hành phù hợp để giảm thiểu rủi ro liên quan đến các ứng dụng và sản phẩm của họ.
NXP Semiconductors không chấp nhận bất kỳ trách nhiệm pháp lý nào liên quan đến bất kỳ lỗi, hư hỏng, chi phí hoặc vấn đề nào dựa trên bất kỳ điểm yếu hoặc lỗi nào trong các ứng dụng hoặc sản phẩm của khách hàng, hoặc ứng dụng hoặc việc sử dụng của (các) khách hàng bên thứ ba của khách hàng.
Khách hàng chịu trách nhiệm thực hiện tất cả các thử nghiệm cần thiết cho các ứng dụng và sản phẩm của khách hàng bằng cách sử dụng các sản phẩm của NXP Semiconductors để tránh lỗi mặc định của ứng dụng và sản phẩm hoặc của ứng dụng hoặc việc sử dụng của (các) khách hàng bên thứ ba của khách hàng. NXP không chịu bất kỳ trách nhiệm pháp lý nào về mặt này
Điều khoản và điều kiện bán hàng thương mại: Các sản phẩm NXP Semiconductors được bán tuân theo các điều khoản và điều kiện chung của việc bán thương mại, như được công bố tại http://www.nxp.com/profile/terms, trừ khi có thỏa thuận khác trong một thỏa thuận cá nhân bằng văn bản hợp lệ.
Trong trường hợp một thỏa thuận cá nhân được ký kết, chỉ các điều khoản và điều kiện của thỏa thuận tương ứng sẽ được áp dụng.
NXP Semiconductors theo đây phản đối rõ ràng việc áp dụng các điều khoản và điều kiện chung của khách hàng liên quan đến việc khách hàng mua sản phẩm NXP Semiconductors.
Kiểm soát xuất khẩu: Tài liệu này cũng như (các) mặt hàng được mô tả ở đây có thể phải tuân theo các quy định kiểm soát xuất khẩu.
Xuất khẩu có thể yêu cầu sự cho phép trước từ các cơ quan có thẩm quyền.
Sự phù hợp để sử dụng trong các sản phẩm đủ tiêu chuẩn không phải ô tô: Trừ khi bảng dữ liệu này tuyên bố rõ ràng rằng sản phẩm NXP Semiconductors cụ thể này đủ tiêu chuẩn cho ô tô, nếu không thì sản phẩm này không phù hợp để sử dụng cho ô tô.
Nó không đủ tiêu chuẩn cũng như không được thử nghiệm theo các yêu cầu ứng dụng hoặc thử nghiệm ô tô. NXP Semiconductors không chịu trách nhiệm pháp lý đối với việc đưa vào và/hoặc sử dụng các sản phẩm đủ tiêu chuẩn không dành cho ô tô trong thiết bị hoặc ứng dụng ô tô.
Trong trường hợp khách hàng sử dụng sản phẩm để thiết kế và sử dụng trong các ứng dụng ô tô theo các thông số kỹ thuật và tiêu chuẩn ô tô, khách hàng (a) sẽ sử dụng sản phẩm mà không có bảo hành của NXP Semiconductors đối với sản phẩm cho các ứng dụng, sử dụng và thông số kỹ thuật ô tô đó, và ( b) bất cứ khi nào khách hàng sử dụng sản phẩm cho các ứng dụng ô tô vượt quá thông số kỹ thuật của NXP Semiconductors, việc sử dụng đó sẽ hoàn toàn do khách hàng tự chịu rủi ro và (c) khách hàng hoàn toàn bồi thường cho NXP Semiconductors đối với bất kỳ trách nhiệm pháp lý, thiệt hại hoặc khiếu nại sản phẩm không thành công do khách hàng thiết kế và sử dụng sản phẩm dành cho các ứng dụng ô tô ngoài bảo hành tiêu chuẩn của NXP Semiconductors và thông số kỹ thuật của sản phẩm NXP Semiconductors.
Bản dịch: Phiên bản (đã dịch) không phải tiếng Anh của một tài liệu, bao gồm cả thông tin pháp lý trong tài liệu đó, chỉ mang tính chất tham khảo.
Bản tiếng Anh sẽ được ưu tiên áp dụng trong trường hợp có bất kỳ sự khác biệt nào giữa bản dịch và bản tiếng Anh.
Bảo vệ: Khách hàng hiểu rằng tất cả các sản phẩm của NXP có thể có các lỗ hổng không xác định hoặc có thể hỗ trợ các tiêu chuẩn hoặc thông số kỹ thuật bảo mật đã thiết lập với các giới hạn đã biết.
Khách hàng chịu trách nhiệm thiết kế và vận hành các ứng dụng và sản phẩm của mình trong suốt vòng đời của chúng để giảm tác động của các lỗ hổng này đối với các ứng dụng và sản phẩm của khách hàng.
Trách nhiệm của khách hàng cũng mở rộng sang các công nghệ mở và/hoặc độc quyền khác được hỗ trợ bởi các sản phẩm của NXP để sử dụng trong các ứng dụng của khách hàng.
NXP không chịu trách nhiệm pháp lý đối với bất kỳ lỗ hổng nào.
Khách hàng nên thường xuyên kiểm tra các bản cập nhật bảo mật từ NXP và theo dõi một cách thích hợp.
Khách hàng phải lựa chọn các sản phẩm có các tính năng bảo mật đáp ứng tốt nhất các quy tắc, quy định và tiêu chuẩn của ứng dụng dự kiến và đưa ra quyết định thiết kế cuối cùng liên quan đến sản phẩm của mình và tự chịu trách nhiệm tuân thủ tất cả các yêu cầu pháp lý, quy định và bảo mật liên quan đến sản phẩm của mình, bất kể về bất kỳ thông tin hoặc hỗ trợ nào có thể được cung cấp bởi NXP.
NXP có Nhóm ứng phó sự cố bảo mật sản phẩm (PSIRT) (có thể truy cập tại PSIRT@nxp.com) quản lý việc điều tra, báo cáo và đưa ra giải pháp cho các lỗ hổng bảo mật của sản phẩm NXP.
BVXP: NXP BV không phải là một công ty điều hành và nó không phân phối hoặc bán sản phẩm.
Nhãn hiệu
Để ý: Tất cả các nhãn hiệu được tham chiếu, tên sản phẩm, tên dịch vụ và nhãn hiệu là tài sản của chủ sở hữu tương ứng của chúng.
NXP: chữ và logo là thương hiệu của NXP BV
i.MX: là thương hiệu của NXP BV
HỖ TRỢ KHÁCH HÀNG
Để biết thêm thông tin, vui lòng truy cập: http://www.nxp.com
Tài liệu / Tài nguyên
![]() |
NXP AN13948 Tích hợp Ứng dụng GUI LVGL vào Nền tảng HMI thông minh [tập tin pdf] Hướng dẫn sử dụng AN13948 Tích hợp ứng dụng GUI LVGL vào Nền tảng HMI thông minh, AN13948, Tích hợp ứng dụng GUI LVGL vào Nền tảng HMI thông minh |