راهنمای کاربر NXP AN13948 ادغام برنامه رابط کاربری گرافیکی LVGL در Smart HMI Platform
NXP AN13948 یکپارچه سازی برنامه رابط کاربری گرافیکی LVGL در پلتفرم هوشمند HMI

مقدمه

NXP یک کیت توسعه راه حل به نام SLN-TLHMI-IOT راه اندازی کرده است. این برنامه بر روی برنامه های هوشمند HMI شامل دو برنامه - دستگاه قهوه ساز و آسانسور (برنامه پنل هوشمند به زودی ارائه می شود) تمرکز دارد.
برای ارائه اطلاعات به کاربر، برخی از اسناد اولیه، به عنوان مثال، گنجانده شده استample، راهنمای توسعه دهنده.
این راهنما، طراحی نرم‌افزار پایه و معماری برنامه‌ها را معرفی می‌کند که تمامی اجزای راه‌حل را پوشش می‌دهد.
این مؤلفه ها شامل بوت لودر، چارچوب و طراحی HAL است تا به توسعه دهندگان کمک کند تا برنامه های خود را با استفاده از SLN-TLHMI-IOT آسان تر و کارآمدتر پیاده سازی کنند.

برای جزئیات بیشتر در مورد اسناد و راه حل، به آدرس زیر مراجعه کنید: راه حل HMI هوشمند NXP EdgeReady مبتنی بر i.MX RT117H با ML Vision، صدا و رابط گرافیکی.

با این حال، مقدمه بر ایده ها و استفاده اساسی تمرکز دارد. به دلیل انطباق نرم افزار بر اساس چارچوب، هنوز برای توسعه دهندگان آسان نیست که بدانند چگونه برنامه های خود را پیاده سازی کنند.
برای سرعت بخشیدن به توسعه، راهنماهای اضافی برای معرفی نحوه اجرای اجزای اصلی مورد نیاز است (مثلاًample، LVGL GUI، دید و تشخیص صدا) گام به گام.
برای مثالampبنابراین، مشتریان باید برنامه رابط کاربری گرافیکی LVGL خود را متفاوت از برنامه های موجود در راه حل داشته باشند.
پس از پیاده سازی رابط کاربری گرافیکی LVGL خود با راهنمای GUI ارائه شده توسط NXP، آنها باید آن را بر اساس چارچوب نرم افزاری هوشمند HMI ادغام کنند.

این یادداشت کاربردی نحوه ادغام برنامه رابط کاربری گرافیکی LVGL که توسط کاربر در پلتفرم نرم افزار هوشمند HMI بر اساس چارچوب ایجاد شده است را توضیح می دهد.
کدهای مرجع نیز به همراه این یادداشت کاربردی ارائه شده است.

توجه: این یادداشت کاربردی نحوه توسعه رابط کاربری گرافیکی مبتنی بر LVGL با ابزار نرم افزار GUI Guider را توضیح نمی دهد.

تمام شدview راهنمای LVGL و GUI در بخش 1.1 و بخش 1.2 توضیح داده شده است.

کتابخانه گرافیکی سبک و همه کاره
کتابخانه سبک و همه کاره گرافیک (LVGL) یک کتابخانه گرافیکی رایگان و منبع باز است.
همه چیزهایی را که برای ایجاد یک رابط کاربری گرافیکی تعبیه شده با عناصر گرافیکی با کاربری آسان، جلوه های بصری زیبا و حافظه کم نیاز دارید، فراهم می کند.

راهنمای رابط کاربری گرافیکی
GUI Guider یک ابزار توسعه رابط کاربری گرافیکی کاربرپسند از NXP است که توسعه سریع نمایشگرهای با کیفیت بالا را با کتابخانه گرافیکی منبع باز LVGL امکان پذیر می کند.
ویرایشگر کشیدن و رها کردن GUI Guider استفاده از بسیاری از ویژگی های LVGL را آسان می کند. این ویژگی ها شامل ویجت ها، انیمیشن ها و سبک ها برای ایجاد یک رابط کاربری گرافیکی با حداقل یا بدون کدنویسی است.
با کلیک یک دکمه می توانید برنامه خود را در یک محیط شبیه سازی شده اجرا کنید یا آن را به یک پروژه هدف صادر کنید.
کد تولید شده از GUI Guider به راحتی می تواند به پروژه شما اضافه شود، روند توسعه را تسریع کرده و به شما این امکان را می دهد که یک رابط کاربری تعبیه شده را به برنامه خود اضافه کنید.
GUI Guider برای استفاده با NXP برای اهداف عمومی و MCU های متقاطع رایگان است و شامل قالب های پروژه داخلی برای چندین پلتفرم پشتیبانی می شود.
برای کسب اطلاعات بیشتر در مورد توسعه LVGL و GUI در GUI Guider، به https://lvgl.io/ و GUI Guider مراجعه کنید.

محیط توسعه

محیط توسعه را برای توسعه و ادغام یک برنامه رابط کاربری گرافیکی در پلت فرم هوشمند HMI آماده و راه اندازی کنید.

محیط سخت افزاری

سخت افزار زیر برای نمایش پس از توسعه مورد نیاز است:

  • کیت توسعه هوشمند HMI مبتنی بر NXP i.MX RT117H
  • SEGGER J-Link با آداپتور 9 پین Cortex-M

محیط نرم افزار
ابزارهای نرم افزاری و نسخه های مورد استفاده در این یادداشت کاربردی به شرح زیر معرفی شده اند:

  • GUI Guider V1.5.0-GA
  • MCUXpresso IDE V11.7.0
    توجه: یک اشکال در نسخه‌های قبل از 11.7.0 اجازه نمی‌دهد پروژه‌های چند هسته‌ای داخلی درست شوند.
    بنابراین، نسخه 11.7.0 یا بالاتر مورد نیاز است.
  • RT1170 SDK V2.12.1
  • پلت فرم نرم افزار SLN-TLHMI-IOT – کد منبع هوشمند HMI که در مخزن رسمی GitHub ما منتشر شده است

برای کسب اطلاعات بیشتر در مورد نحوه راه اندازی و نصب محیط سخت افزار و نرم افزار، به شروع به کار با SLN-TLHMI-IOT (سند) مراجعه کنید. MCU-SMHMI-GSG).

اپلیکیشن LVGL GUI را در پلتفرم هوشمند HMI ادغام کنید

پلتفرم نرم افزار هوشمند HMI بر اساس معماری چارچوب ساخته شده است. توسعه‌دهندگان حتی اگر راهنمای توسعه‌دهنده را بخوانند و از چارچوب اطلاع داشته باشند، اضافه کردن برنامه رابط کاربری گرافیکی LVGL خود به پلتفرم نرم‌افزار هوشمند HMI دشوار است.
بخش های بعدی نحوه پیاده سازی آن را مرحله به مرحله توضیح می دهد.

برنامه LVGL GUI را در GUI Guider توسعه دهید
همانطور که در بالا ذکر شد، نحوه توسعه رابط کاربری گرافیکی LVGL در GUI Guider در این یادداشت برنامه تاکید نشده است.
اما یک سابق رابط کاربری گرافیکیampلازم است.
بنابراین، یک الگوی ساده رابط کاربری گرافیکی با نام Slider Progress ارائه شده در GUI Guider به عنوان رابط کاربری سابق انتخاب می شود.ampبرای راه اندازی سریع
الگوی Slider Progress GUI استفاده می شود زیرا حاوی تصویری است که برای نشان دادن منابع تصویر ساختمان در برنامه مورد نیاز است.
رابط کاربری گرافیکی سابقampتولید le بسیار آسان است: برای ایجاد یک پروژه با کتابخانه LVGL به روز شده V8.3.2 و قالب برد به عنوان MIMXRT1176xxxxx، به راهنمای کاربر راهنمای GUI (سند) مراجعه کنید. GUIGUIDERUG).
شکل 1 تنظیمات پروژه را نشان می دهد.

توجه: نوع پانل باید انتخاب شود، همانطور که در کادر قرمز در شکل 1 نشان داده شده است، همانطور که در برد توسعه فعلی استفاده می شود.

پس از ایجاد پروژه، شبیه ساز را اجرا کنید تا کدهای رابط کاربری گرافیکی LVGL مربوطه را تولید کرده و پروژه را نیز بسازید.
می توانید تأثیر رابط کاربری گرافیکی سابق را بررسی کنیدampروی شبیه ساز

شکل 1. راه اندازی پروژه رابط کاربری گرافیکی در GUI Guider
تنظیم پروژه

پروژه خود را در HMI هوشمند ایجاد کنید
توجه: ابتدا پروژه خود را در MCUXpresso IDE ایجاد کنید.

پس از LVGL GUI سابقample ساخته شده است، می تواند به هدف اصلی برود تا آن را در پلت فرم نرم افزار هوشمند HMI در پروژه MCUXpresso برای اجرای برنامه رابط کاربری گرافیکی شما ادغام کند.
روش ساده و سریع، شبیه سازی پروژه برنامه فعلی ارائه شده در پلت فرم هوشمند HMI است.
برنامه آسانسور به عنوان منبع کلون شده انتخاب بهتری است زیرا پیاده سازی ساده ای دارد.

برای ایجاد پروژه خود، مراحل زیر را دنبال کنید:

  1. پوشه "elevator" را در کد منبع HMI هوشمند کلون شده از GitHub کپی و جایگذاری کنید. نام آن را به خود تغییر دهید.
    برای این سابقampما "slider_progress" را به دنبال نام رابط کاربری گرافیکی سابق انتخاب کردیمampله
  2. در پوشه "slider_progress"، پوشه "lvgl_vglite_lib" حاوی پروژه LVGL GUI را وارد کنید.
  3. مربوط به پروژه را باز کنید files .cproject و .project را انتخاب کنید و تمام رشته "elevator" را با رشته نام پروژه خود "slider_progress" جایگزین کنید.
  4. جایگزینی مشابه را برای هر دو پروژه انجام دهید files در پوشه های "cm4" و "cm7".
    پروژه خود را با شبیه سازی پروژه آسانسور راه اندازی کنید files.
    همانطور که در نشان داده شده است شکل 2 پروژه های شما اکنون می توانند در MCUXpresso IDE به همان شیوه پروژه آسانسور باز شوند.

شکل 2. راه اندازی پروژه ها در MCUXpresso
راه اندازی پروژه

منابع برای HMI هوشمند بسازید
به طور کلی، تصاویر در رابط کاربری گرافیکی استفاده می شوند (صداهایی که در پیام های صوتی نیز استفاده می شوند).
تصاویر و صداها منابع نامیده می شوند که در یک فلش به ترتیب ذخیره می شوند. قبل از برنامه نویسی آنها بر روی فلش، منابع باید در یک باینری ساخته شوند file.
کار اصلی جایگزینی نام اپلیکیشن مرجع (آسانسور) با نام شماست.

برای این کار مراحل زیر را دنبال کنید:

  1. پوشه "تصاویر" کلون شده را در زیر slider_progress/resource حذف کنید.
  2. پوشه "تصاویر" را در زیر \generated در پروژه GUI Guider خود کپی کنید.
  3. آن را در زیر slider_progress/resource قرار دهید (یعنی از تصاویر خود به جای تصاویر برنامه آسانسور استفاده کنید).
  4. *.mk را حذف کنید file برای راهنمای GUI در پوشه "تصاویر" استفاده می شود.
  5. تغییر نام دهید fileelevator_resource.txt، elevator_resource_build.bat، و elevator_resource_build.sh را در پوشه "منبع" به نام پروژه خود slider_progress_resource.txt، slider_progress_resource_build.bat، و slider_progress_resource_build.sh وارد کنید.
    تذکر:
    • elevator_resource.txt: شامل مسیرها و نام تمام منابع (تصاویر و صداها) مورد استفاده در برنامه است.
    • elevator_resource_build.bat/elevator_resource_build.sh: برای ساخت منابع در ویندوز و لینوکس بر این اساس استفاده می شود.
  6. پس از باز کردن slider_progress_resource.txt file، تمام رشته های "elevator" را با "slider_progress" جایگزین کنید.
  7. تمام تصاویر قدیمی را حذف کنید و تصاویر جدید را با تصویر خود اضافه کنید file نام‌ها (در اینجا «_scan_ex استample_597x460.c")، مانند تصویر ../../slider_progress/resource/images/_scan_example_597x460.c.
  8. slider_progress_resource.bat را باز کنید file برای ویندوز و تمام رشته های "elevator" را با "slider_progress" جایگزین کنید. همین کار را با file slider_progress_resource.sh برای لینوکس.
  9. روی دسته دوبار کلیک کنید file slider_progress_resource_build.bat برای ویندوز.
  10. پنجره فرمان ظاهر می شود و به طور خودکار برای تولید منبع تصویر باینری اجرا می شود file حاوی داده های تصویر و اطلاعات دسترسی به منابع حاوی کدهای C برای تنظیم تمام مکان های تصویر در فلش و اندازه کل بایت تصاویر.
    پس از نمایش پیام «تولید منابع کامل شد!»، منبع تصویر باینری file به نام slider_progress_resource.bin و اطلاعات دسترسی به منبع file به نام resource_information_table.txt در پوشه "resource" تولید می شوند.
    منبع تصویر باینری file روی فلش برنامه ریزی می شود و اطلاعات دسترسی به منابع برای دسترسی به منابع در HMI هوشمند استفاده می شود (به بخش 3.4.1 مراجعه کنید).

برنامه LVGL GUI را در HMI هوشمند ادغام کنید
کدهای برنامه LVGL GUI (در اینجا SliderProgress GUI example) و منابع تصویر ساخته شده از جمله اطلاعات دسترسی را می توان به HMI هوشمند اضافه کرد.
علاوه بر این، برای پیاده سازی برنامه رابط کاربری گرافیکی LVGL خود در HMI هوشمند، باید دستگاه های HAL مربوط به LVGL GUI و تنظیمات مربوطه را اضافه کنید.
برنامه رابط کاربری گرافیکی LVGL بر روی هسته M4 اجرا می شود و پیاده سازی مربوطه تقریباً در پروژه M4 "sln_smart_tlhmi_slider_progress_cm4" است.
مراحل دقیق در بخش های فرعی بعدی توضیح داده شده است.

کدها و منابع LVGL GUI را اضافه کنید
کدهای برنامه رابط کاربری گرافیکی LVGL مورد استفاده برای HMI هوشمند در پوشه های "سفارشی" و "تولید شده" در پروژه راهنمای GUI هستند.

برای افزودن کدها به HMI هوشمند، مراحل زیر را دنبال کنید:

  1. custom.c و custom.h را در زیر slider_progress/cm4/custom/ با موارد موجود در پوشه "custom" در پروژه GUI Guider جایگزین کنید.
  2. پوشه های "تولید شده" را از slider_progress/cm4/ حذف کنید.
    سپس پوشه “generated” را از پروژه GUI Guider کپی کرده و آن را در slider_progress/cm4/ قرار دهید.
  3. پوشه های "image" و "mPythonImages" و همه موارد را حذف کنید files *.mk و *.py در پوشه "تولید شده".
    همانطور که در بالا ذکر شد، تصاویر موجود در پوشه "image" در یک باینری منبع ساخته می شوند file، بنابراین پوشه "تصویر" مورد نیاز نیست.
    پوشه "mPythonImages" و همه files *.mk و *.py برای HMI هوشمند ناخواسته هستند.
  4. برای افزودن کنترل mutex بر اساس پلت فرم هوشمند HMI و تنظیم مکان های تصویر روی فلاش، آن را تغییر دهید file custom.c در MCUXpresso IDE.
    همه اینها توسط RT_PLATFORM تعریف شده است.
  5. پروژه آسانسور را در MCUXpresso IDE باز کنید. تعریف ماکرو RT_PLATFORM را در custom.c در زیر sln_smart_tlhmi_elevator_cm4 > custom جستجو کنید و تمام خطوط کد را از #if defined (RT_PLATFORM) در #endif کپی کنید و در قسمت پیست کنید. file custom.c در sln_smart_tlhmi_slider_progress_cm4 > custom.
  6. خطوط کد زیر #else حاوی #else را حذف کنید زیرا برای رابط کاربری گرافیکی آسانسور استفاده می شود.
    خطوط کد اضافه شده موارد زیر را پوشش می دهد:
    • شامل files به شرح زیر است:
      کد و منابع

    • اعلان متغیر به شرح زیر است:
      کد و منابع
    • کدهای C در تابع custom_init() به شرح زیر است:
      کد و منابع
      کد و منابع
    • کدهای C برای توابع _takeLVGLMutex()، _giveLVGLMutex() و setup_imgs() که در آن مکان همه تصاویر تنظیم شده است.
  7. کدهای تابع setup_imgs() را با کدهای تنظیم مکان برای تصاویر در resource_information_table.txt جایگزین کنید. file (به بخش 3.3 مراجعه کنید).
    در این یادداشت برنامه، تنها یک منبع تصویر وجود دارد که به صورت زیر تنظیم شده است: _scan_example_597x460.data = (پایه + 0); پس از انجام آن، تابع setup_imgs() به صورت زیر نشان داده شده است:
    کد و منابع
  8. برای افزودن تعریف ماکرو و اعلان تابع مربوط به custom.c، custom.h را تغییر دهید file در زیر sln_smart_tlhmi_slider_progress_cm4 > custom، همانطور که در زیر نشان داده شده است:
    کد و منابع
  9. برای تعریف تصاویر در برنامه LVGL GUI، lvgl_images_internal.h را تغییر دهید. file تحت sln_smart_tlhmi_slider_progress_cm4 > سفارشی.
    • یک تصویر را باز کنید *.c file (اینجا _scan_ex استample_597x460.c) در زیر /generated/ image/ در پروژه GUI Guider.
      تعریف تصویر را در انتهای قسمت کپی کنید file. آن را در lvgl_images_internal.h قرار دهید file پس از حذف تمام تعاریف اصلی در مورد تصاویر برای برنامه آسانسور.
    • حذف .data = _scan_example_597x460_map در آرایه از آنجایی که .data در تابع setup_imgs () تنظیم شده است.
      آرایه در نهایت در lvgl_images_internal.h تعریف شده است file، همانطور که در زیر نشان داده شده است:
      کد و منابع
      تذکر:
      عملیات بالا را برای تمام تصویر تکرار کنید fileیک به یک اگر چند تصویر وجود دارد files.
  10. اندازه کل منبع تصویر را با تعریف ماکرو تعریف APP_LVGL_IMGS_SIZE در app_config.h پیکربندی کنید. file زیر sln_smart_tlhmi_slider_progress_cm7 > منبع با اندازه جدید تصاویر.
    این اندازه جدید در resource_information_table.txt ساخته شده موجود است file.

دستگاه ها و تنظیمات HAL را اضافه کنید
بر اساس معماری فریم ورک، دو دستگاه HAL (دستگاه های نمایشگر و خروجی) برای کاربرد GUI LVGL طراحی شده اند.
پیاده سازی دو دستگاه بسته به برنامه های مختلف رابط کاربری گرافیکی LVGL متفاوت است، اگرچه طراحی های معماری مشترکی برای آنها وجود دارد.
آنها به طور جداگانه در دو اجرا می شوند files.
بنابراین، باید این دو را شبیه سازی کند fileاز برنامه آسانسور حاضر و برنامه LVGL GUI خود را اصلاح کنید.
سپس، دستگاه های خود را در پیکربندی فعال کنید file.
برنامه رابط کاربری گرافیکی LVGL شما بر اساس پلتفرم هوشمند HMI بر اساس چارچوب ساخته شده است.

تغییرات دقیق را می توان در MCUXpresso IDE انجام داد، همانطور که در زیر نشان داده شده است:

  • دستگاه نمایشگر HAL را پیاده سازی کنید
    1. hal_display_lvgl_elevator.c را کپی و پیست کنید file تحت گروه sln_smart_tlhmi_slider_progress_cm4 > Framework > hal > نمایش در پروژه MCUXpresso. نام آن را به hal_display_lvgl_sliderprogress.c برای برنامه خود تغییر دهید.
    2. را باز کنید file hal_display_lvgl_sliderprogress.c را انتخاب کنید و تمام رشته های "elevator" را با رشته برنامه خود "SliderProgress" در قسمت جایگزین کنید. file.
  • اجرای دستگاه HAL خروجی
    1. hal_output_ui_elevator.c را کپی و پیست کنید file تحت گروه sln_smart_tlhmi_slider_progress_cm4 > Framework > hal > خروجی پروژه MCUXpresso. نام آن را به hal_output_ui_sliderprogress.c برای برنامه خود تغییر دهید.
    2. را باز کنید file hal_output_ui_sliderprogress.c. تمام عملکردهای مربوط به برنامه آسانسور را به جز عملکردهای رایج اساسی زیر دستگاه 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();
      علاوه بر این، اعلامیه های دو عملکرد زیر را رزرو کنید:
      APP_OutputDev_UiElevator_InferCompleteDecode();
      APP_OutputDev_UiElevator_InputNotifyDecode();
    3. تابع HAL_OutputDev_UiElevator_InferComplete() را برای ساختن برنامه خود در آینده پاک کنید.
      در تابع، هر دو فراخوانی تابع _InferComplete_Vision() و _InferComplete_Voice() را که برای مدیریت نتایج از الگوریتم های بینایی و صدا برای کاربرد آسانسور استفاده می شوند، حذف کنید.
    4. تابع HAL_OutputDev_UiElevator_InputNotify() را پاک کنید و معماری پایه را برای توسعه بیشتر برنامه حفظ کنید.
      در نهایت تابع به صورت زیر است:
      کد و منابع
    5. تمام اعلان‌های متغیر، از جمله enum و آرایه را حذف کنید، به جز مواردی که s_UiSurface و s_AsBuffer[] برای پیاده‌سازی‌های رایج استفاده می‌شوند.
    6. همه رشته‌های "elevator" را با رشته برنامه "SliderProgress" جایگزین کنید.
  • هر دو دستگاه HAL را فعال و پیکربندی کنید
    1. board_define.h را باز کنید file زیر sln_smart_tlhmi_slider_progress_cm4 > برد.
      همه رشته‌های "elevator" را با رشته برنامه "SliderProgress" در قسمت جایگزین کنید file.
      نمایشگر و دستگاه های HAL خروجی را با تعاریف ENABLE_DISPLAY_DEV_LVGLSliderProgress و ENABLE_OUTPUT_DEV_UiSliderProgress فعال و پیکربندی می کند.
    2. lvgl_support.c را باز کنید file زیر sln_smart_tlhmi_slider_progress_cm4 > برد. همه رشته‌های "elevator" را با رشته برنامه "SliderProgress" در قسمت جایگزین کنید file.
      پیش دوربین را فعال می کندview در رابط کاربری گرافیکی در سطح درایور نمایشگر.
  • هر دو دستگاه HAL را ثبت کنید
    sln_smart_tlhmi_cm4.cpp اصلی M4 را باز کنید file زیر sln_smart_tlhmi_slider_progress_cm4 > منبع.
    همه رشته‌های "elevator" را با رشته برنامه "SliderProgress" در قسمت جایگزین کنید file.
    به جای برنامه آسانسور، نمایشگر و دستگاه HAL خروجی را برای برنامه شما ثبت می کند.
    بنابراین، ادغام برای اجرای برنامه GUI پایه LVGL در HMI هوشمند تکمیل شده است.
    بسته به نیازهای بیشتر برای برنامه، پیاده سازی های بیشتری را می توان بر اساس برنامه پایه یکپارچه اضافه کرد.

تظاهرات

نسخه ی نمایشی برنامه "slider_progress" همراه با این یادداشت برنامه پیاده سازی شده است.

پس از باز کردن بسته نرم افزاری دمو، موارد زیر را قرار دهید files و پوشه را در نرم افزار هوشمند HMI وارد کنید:

  • را file hal_display_lvgl_sliderprpgress.c تحت [demo]\framework\hal\display\ به مسیر [HMI هوشمند]\framework\hal\display\
  • را file hal_output_ui_slider_progress.c تحت [demo]\framework\hal\output\ به مسیر [HMI هوشمند]\framework\hal\output\
  • پوشه "slider_progress" به مسیر اصلی [HMI هوشمند]\
    پروژه ها را می توان در MCUXpresso IDE باز کرد، درست مانند برنامه قهوه ساز/آسانسور که در پلت فرم هوشمند HMI ارائه شده است.
    پس از برنامه نویسی *.axf ساخته شده file به آدرس 0x30100000 و باینری منبع file به آدرس 0x30700000، نسخه نمایشی GUI LVGL می تواند با موفقیت بر روی برد توسعه هوشمند HMI اجرا شود (شکل 3 را برای نمایش صفحه ببینید).
    توجه: اگر از نسخه 1.7.0 MCUXpresso IDE استفاده می کنید، قبل از ساختن پروژه CM4، «مدیریت اسکریپت پیوند» را در تنظیمات > MCU C++ Linker > اسکریپت لینکر مدیریت شده فعال کنید.
    شکل 3. نمایش دمو GUI LVGL بر روی برد توسعه HMI هوشمند
    نمایش دمو

تاریخچه تجدید نظر

تاریخچه بازبینی اصلاحات این سند را خلاصه می کند.

جدول 1. تاریخچه تجدید نظر

شماره تجدید نظر تاریخ تغییرات ماهوی
1 16 ژوئن 2023 انتشار اولیه

در مورد کد منبع در سند توجه کنید

Exampکد le نشان داده شده در این سند دارای حق چاپ و مجوز BSD-3-Clause زیر است:
حق چاپ 2023 NXP توزیع مجدد و استفاده در فرم های منبع و باینری، با یا بدون تغییر، به شرط رعایت شرایط زیر مجاز است:

  1. توزیع مجدد کد منبع باید اعلامیه حق چاپ بالا، این لیست شرایط و سلب مسئولیت زیر را حفظ کند.
  2. توزیع مجدد به صورت دودویی باید اعلان حق چاپ بالا را بازتولید کند، این فهرست شرایط و سلب مسئولیت زیر در اسناد و/یا سایر مطالب باید همراه با توزیع ارائه شود.
  3. نه نام دارنده حق چاپ و نه نام همکاران آن برای تأیید یا تبلیغ محصولات مشتق شده از این نرم افزار بدون اجازه کتبی خاص قابل استفاده نیست.

این نرم‌افزار توسط دارندگان حق نسخه‌برداری و مشارکت‌کنندگان «همان‌طور که هست» و هرگونه ضمانت صریح یا ضمنی، از جمله، اما نه محدود به، ضمانت‌نامه‌های ضمنی تضمین‌کننده تضمین‌های تجاری و ضمانت‌نامه‌های تجاری، ارائه می‌شود.
دارنده یا مشارکت‌کنندگان حق نسخه‌برداری در هیچ موردی در قبال هر گونه خسارت مستقیم، غیرمستقیم، اتفاقی، خاص، مثالی یا تبعی (شامل، اما به طور غیرمستقیم، به طور غیرمستقیم، مسئولیتی ندارند. SS OF استفاده، داده یا سود. یا وقفه کسب و کار) به هر حال و در هر نظری از مسئولیت، خواه در قرارداد، مسئولیت اکید، یا ظلم (شامل سهل انگاری یا در غیر این صورت) که به هر نحوی که به هر نحوی که باشد، ایجاد شده باشد. از امکان چنین
خسارت.

اطلاعات حقوقی

تعاریف
پیش نویس:
یک وضعیت پیش‌نویس روی یک سند نشان می‌دهد که محتوا هنوز تحت نسخه داخلی استview و مشروط به تأیید رسمی ، که ممکن است منجر به اصلاح یا اضافه شود.
NXP Semiconductors هیچ گونه اظهارنظر یا ضمانتی در مورد صحت یا کامل بودن اطلاعات موجود در نسخه پیش نویس یک سند نمی دهد و هیچ مسئولیتی در قبال عواقب استفاده از چنین اطلاعاتی ندارد.

سلب مسئولیت
گارانتی و مسئولیت محدود: اعتقاد بر این است که اطلاعات این سند دقیق و قابل اعتماد است.
با این حال، NXP Semiconductors هیچ گونه ضمانت یا ضمانت صریح یا ضمنی در مورد صحت یا کامل بودن چنین اطلاعاتی ارائه نمی دهد و هیچ مسئولیتی در قبال عواقب استفاده از این اطلاعات نخواهد داشت.
NXP Semiconductors هیچ مسئولیتی در قبال محتوای این سند در صورت ارائه توسط منبع اطلاعاتی خارج از NXP Semiconductors ندارد.
به هیچ وجه NXP Semiconductors در قبال خسارات غیرمستقیم، اتفاقی، تنبیهی، خاص یا تبعی (شامل – بدون محدودیت – سود از دست رفته، پس‌اندازهای از دست رفته، وقفه در کسب و کار، هزینه‌های مربوط به حذف یا جایگزینی هر محصول یا هزینه‌های کار مجدد) مسئولیتی ندارد. یا نه، چنین خساراتی مبتنی بر تخلف (از جمله سهل انگاری)، ضمانت، نقض قرارداد یا هر نظریه حقوقی دیگری است.
با وجود هر گونه خسارتی که مشتری ممکن است به هر دلیلی متحمل شود، مسئولیت کلی و انباشته NXP Semiconductors در قبال مشتری در قبال محصولاتی که در اینجا توضیح داده شده است، مطابق با شرایط و ضوابط فروش تجاری نیمه هادی های NXP محدود می شود.

حق ایجاد تغییرات: NXP Semiconductors این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، تغییراتی را در اطلاعات منتشر شده در این سند، از جمله بدون محدودیت مشخصات و توضیحات محصول، محفوظ می دارد.
این سند جایگزین و جایگزین تمام اطلاعات ارائه شده قبل از انتشار در اینجا می شود.

مناسب برای استفاده: محصولات NXP Semiconductors برای استفاده در پشتیبانی از حیات، سیستم‌ها یا تجهیزات حیاتی یا حیاتی حیاتی یا ایمنی، و همچنین در برنامه‌هایی که به طور منطقی انتظار می‌رود خرابی یا عملکرد نادرست یک محصول نیمه‌هادی NXP منجر به مشکلات شخصی شود، طراحی، مجاز یا تضمین نشده است. جراحت، مرگ یا آسیب شدید مالی یا محیطی.
NXP Semiconductors و تامین کنندگان آن هیچ مسئولیتی در قبال گنجاندن و/یا استفاده از محصولات NXP Semiconductors در چنین تجهیزات یا برنامه هایی نمی پذیرند و بنابراین چنین گنجاندن و/یا استفاده به عهده خود مشتری است.

برنامه های کاربردی: برنامه هایی که در اینجا برای هر یک از این محصولات توضیح داده شده اند، فقط برای اهداف توضیحی هستند.
NXP Semiconductors هیچ گونه تضمین یا تضمینی مبنی بر مناسب بودن چنین برنامه هایی برای استفاده مشخص شده بدون آزمایش یا اصلاح بیشتر ارائه نمی دهد.
مشتریان مسئول طراحی و بهره برداری از برنامه ها و محصولات خود با استفاده از محصولات NXP Semiconductors هستند و NXP Semiconductors هیچ مسئولیتی در قبال هیچ گونه کمکی در مورد برنامه ها یا طراحی محصول مشتری نمی پذیرد.
این تنها مسئولیت مشتری است که تشخیص دهد آیا محصول NXP Semiconductors برای برنامه‌های کاربردی مشتری و محصولات برنامه‌ریزی‌شده مناسب و مناسب است یا خیر، و همچنین برای برنامه‌ریزی‌شده و استفاده از مشتری (های) شخص ثالث مشتری.
مشتریان باید برای به حداقل رساندن خطرات مرتبط با برنامه‌ها و محصولات خود، طراحی و اقدامات حفاظتی مناسب را ارائه دهند.
NXP Semiconductors هیچ گونه مسئولیتی را در رابطه با هرگونه پیش‌فرض، آسیب، هزینه یا مشکلی که بر اساس ضعف یا پیش‌فرض در برنامه‌ها یا محصولات مشتری، یا برنامه یا استفاده توسط مشتری (های) شخص ثالث مشتری باشد، نمی‌پذیرد.
مشتری مسئول انجام کلیه آزمایشات لازم برای برنامه ها و محصولات مشتری با استفاده از محصولات نیمه هادی NXP به منظور جلوگیری از پیش فرض برنامه ها و محصولات یا برنامه یا استفاده توسط مشتری (های) شخص ثالث مشتری است. NXP هیچ گونه مسئولیتی در این زمینه نمی پذیرد

شرایط و ضوابط فروش تجاری: محصولات NXP Semiconductors طبق شرایط و ضوابط عمومی فروش تجاری که در سایت منتشر شده فروخته می شوند http://www.nxp.com/profile/terms، مگر اینکه در یک توافق نامه کتبی معتبر فردی توافق شده باشد.
در صورت انعقاد قرارداد انفرادی، فقط شرایط و ضوابط قرارداد مربوطه اعمال می شود.
NXP Semiconductors بدین وسیله صراحتاً با اعمال شرایط و ضوابط عمومی مشتری در مورد خرید محصولات نیمه هادی NXP توسط مشتری مخالفت می کند.

کنترل صادرات: این سند و همچنین آیتم(های) شرح داده شده در اینجا ممکن است مشمول مقررات کنترل صادرات باشند.
صادرات ممکن است به مجوز قبلی از مقامات ذیصلاح نیاز داشته باشد.

مناسب برای استفاده در محصولات غیر واجد شرایط خودرو: مگر اینکه این برگه داده به صراحت بیان کند که این محصول خاص NXP Semiconductors واجد شرایط خودرو است، این محصول برای استفاده در خودرو مناسب نیست.
این نه واجد شرایط است و نه مطابق با تست خودرو یا الزامات برنامه آزمایش شده است. NXP Semiconductors هیچ مسئولیتی در قبال گنجاندن و/یا استفاده از محصولات غیر واجد شرایط خودرو در تجهیزات یا برنامه های خودرو نمی پذیرد.
در صورتی که مشتری از محصول برای طراحی و استفاده در کاربردهای خودرویی مطابق با مشخصات و استانداردهای خودرو استفاده کند، مشتری (الف) باید از محصول بدون ضمانت NXP Semiconductors در مورد محصول برای چنین کاربردها، کاربردها و مشخصات خودرویی استفاده کند. ب) هر گاه مشتری از محصول برای کاربردهای خودرویی فراتر از مشخصات NXP Semiconductors استفاده کند، چنین استفاده ای صرفاً به عهده مشتری خواهد بود و (ج) مشتری به طور کامل از NXP Semiconductors برای هرگونه مسئولیت، خسارت یا ادعای ناموفق محصول ناشی از طراحی و استفاده مشتری از NXP غرامت می گیرد. محصولی برای کاربردهای خودرویی فراتر از ضمانت استاندارد NXP Semiconductors و مشخصات محصول NXP Semiconductors.

ترجمه ها: نسخه غیر انگلیسی (ترجمه شده) یک سند، شامل اطلاعات حقوقی در آن سند، فقط برای مرجع است.
در صورت وجود هرگونه مغایرت بین نسخه ترجمه شده و انگلیسی، نسخه انگلیسی برتری خواهد داشت.

امنیت: مشتری می‌داند که همه محصولات NXP ممکن است در معرض آسیب‌پذیری‌های ناشناس باشند یا از استانداردها یا مشخصات امنیتی تعیین‌شده با محدودیت‌های شناخته شده پشتیبانی کنند.
مشتری مسئول طراحی و بهره برداری از برنامه ها و محصولات خود در طول چرخه عمر خود است تا تأثیر این آسیب پذیری ها را بر برنامه ها و محصولات مشتری کاهش دهد.
مسئولیت مشتری همچنین شامل سایر فناوری‌های باز و/یا اختصاصی است که توسط محصولات NXP برای استفاده در برنامه‌های مشتری پشتیبانی می‌شوند.
NXP هیچ مسئولیتی در قبال آسیب پذیری نمی پذیرد.
مشتری باید به طور مرتب به روز رسانی های امنیتی NXP را بررسی کرده و به طور مناسب پیگیری کند.
مشتری باید محصولاتی را با ویژگی‌های امنیتی انتخاب کند که به بهترین وجه با قوانین، مقررات و استانداردهای برنامه مورد نظر مطابقت داشته باشد و تصمیمات نهایی را در مورد محصولات خود اتخاذ کند و صرفاً مسئول انطباق با کلیه الزامات قانونی، مقرراتی و امنیتی مربوط به محصولات خود است، صرف نظر از هر گونه اطلاعات یا پشتیبانی که ممکن است توسط NXP ارائه شود.
NXP دارای یک تیم پاسخگویی به حوادث امنیتی محصول (PSIRT) (قابل دسترسی در PSIRT@nxp.com) است که بررسی، گزارش‌دهی و انتشار راه‌حل برای آسیب‌پذیری‌های امنیتی محصولات NXP را مدیریت می‌کند.

NXP BV: NXP BV یک شرکت عامل نیست و محصولاتی را توزیع یا نمی فروشد.

علائم تجاری

توجه: همه مارک های ارجاع شده، نام محصولات، نام خدمات و علائم تجاری دارایی صاحبان مربوطه می باشند.
NXP: علامت کلمه و لوگو علائم تجاری NXP BV هستند
i.MX: علامت تجاری NXP BV است

پشتیبانی از مشتری

برای اطلاعات بیشتر لطفا به آدرس زیر مراجعه کنید: http://www.nxp.com
Logo.png

اسناد / منابع

NXP AN13948 یکپارچه سازی برنامه رابط کاربری گرافیکی LVGL در پلتفرم هوشمند HMI [pdf] دفترچه راهنمای کاربر
AN13948 ادغام برنامه رابط کاربری گرافیکی LVGL در پلتفرم Smart HMI، AN13948، ادغام برنامه رابط کاربری گرافیکی LVGL در پلت فرم Smart HMI

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *