NXP AN13948 LVGL GUI հավելվածի ինտեգրում Smart HMI պլատֆորմի օգտագործման ձեռնարկ
Ներածություն
NXP-ը գործարկել է լուծումների մշակման փաթեթ, որը կոչվում է SLN-TLHMI-IOT: Այն կենտրոնանում է խելացի HMI հավելվածների վրա, որոնք պարունակում են երկու հավելված՝ սուրճի մեքենա և վերելակ (խելացի վահանակի հավելվածը շուտով կլինի):
Օգտագործողին տեղեկատվություն տրամադրելու համար ներառված են որոշ հիմնական փաստաթղթեր, օրինակample, մշակողի ուղեցույցը:
Ուղեցույցը ներկայացնում է հավելվածների հիմնական ծրագրային դիզայնը և ճարտարապետությունը՝ ընդգրկելով լուծման բոլոր բաղադրիչները:
Այս բաղադրիչները ներառում են bootloader, Framework և HAL դիզայն՝ օգնելու ծրագրավորողներին ավելի հեշտ և արդյունավետ իրականացնել իրենց հավելվածները՝ օգտագործելով SLN-TLHMI-IOT:
Փաստաթղթերի և լուծման մասին լրացուցիչ մանրամասների համար այցելեք. NXP EdgeReady Smart HMI լուծում՝ հիմնված i.MX RT117H-ի վրա՝ ML Vision, ձայնային և գրաֆիկական միջերեսով:
Այնուամենայնիվ, ներածությունը կենտրոնանում է գաղափարների և հիմնական օգտագործման վրա: Շրջանակի վրա հիմնված ծրագրաշարի համապատասխանության պատճառով մշակողների համար դեռևս հեշտ չէ իմանալ, թե ինչպես իրականացնել իրենց հավելվածները:
Զարգացումը արագացնելու համար լրացուցիչ ուղեցույցներ են պահանջվում՝ ներկայացնելու, թե ինչպես իրականացնել հիմնական բաղադրիչները (օրինակample, LVGL GUI, տեսլական և ձայնի ճանաչում) քայլ առ քայլ:
ՆախampԲացի այդ, հաճախորդները պետք է ունենան իրենց սեփական LVGL GUI հավելվածը, որը տարբերվում է լուծման ներկա հավելվածներից:
NXP-ի կողմից տրամադրված GUI Guider-ի հետ իրենց LVGL GUI-ն իրականացնելուց հետո նրանք պետք է ինտեգրեն այն խելացի HMI ծրագրային հարթակում՝ հիմնված շրջանակի վրա:
Այս հավելվածի նշումը նկարագրում է, թե ինչպես կարելի է ինտեգրել օգտատիրոջ կողմից մշակված LVGL GUI հավելվածը շրջանակի վրա հիմնված խելացի HMI ծրագրային հարթակում:
Այս դիմումի գրառման հետ մեկտեղ ներկայացված են նաև հղման կոդերը:
Նշում. Այս հավելվածի նշումը չի բացատրում, թե ինչպես զարգացնել GUI-ը LVGL-ի վրա հիմնված GUI Guider ծրագրային գործիքի միջոցով:
Ավարտըview LVGL և GUI ուղեցույցը նկարագրված է Բաժին 1.1-ում և Բաժին 1.2-ում:
Թեթև և բազմակողմանի գրաֆիկական գրադարան
Թեթև և բազմակողմանի գրաֆիկական գրադարանը (LVGL) անվճար և բաց կոդով գրաֆիկական գրադարան է:
Այն ապահովում է այն ամենը, ինչ ձեզ հարկավոր է ներկառուցված ինտերֆեյս ստեղծելու համար՝ հեշտ օգտագործվող գրաֆիկական տարրերով, գեղեցիկ տեսողական էֆեկտներով և ցածր հիշողության հետքով:
GUI ուղեցույց
GUI Guider-ը օգտագործողի համար հարմար գրաֆիկական ինտերֆեյսի մշակման գործիք է NXP-ից, որը թույլ է տալիս արագ զարգացնել բարձրորակ էկրաններ բաց կոդով LVGL գրաֆիկական գրադարանով:
GUI Guider-ի քաշել և թողնել խմբագրիչը հեշտացնում է LVGL-ի բազմաթիվ հնարավորությունների օգտագործումը: Այս հատկանիշները ներառում են վիջեթներ, անիմացիաներ և ոճեր՝ նվազագույն կամ առանց կոդավորման GUI ստեղծելու համար:
Կոճակի սեղմումով դուք կարող եք գործարկել ձեր հավելվածը մոդելավորված միջավայրում կամ արտահանել այն թիրախային նախագիծ:
GUI Guider-ից ստեղծված կոդը հեշտությամբ կարող է ավելացվել ձեր նախագծին՝ արագացնելով զարգացման գործընթացը և թույլ տալով ձեզ անխափան կերպով ավելացնել ներկառուցված օգտատիրոջ միջերեսը ձեր հավելվածում:
GUI Guider-ն անվճար է օգտագործելու NXP ընդհանուր նշանակության և խաչմերուկային MCU-ների հետ և ներառում է ներկառուցված նախագծերի ձևանմուշներ մի քանի աջակցվող հարթակների համար:
GUI Guider-ի վրա LVGL-ի և GUI-ի մշակման մասին ավելին իմանալու համար այցելեք https://lvgl.io/ և GUI Guider:
Զարգացման միջավայր
Պատրաստեք և ստեղծեք զարգացման միջավայր՝ GUI հավելվածը խելացի HMI հարթակում մշակելու և ինտեգրելու համար:
Սարքավորումների միջավայր
Մշակումից հետո ցուցադրման համար պահանջվում է հետևյալ սարքաշարը.
- Խելացի HMI մշակման հավաքածու՝ հիմնված NXP i.MX RT117H-ի վրա
- SEGGER J-Link 9-pin Cortex-M ադապտերով
ծրագրային միջավայր
Ծրագրային գործիքները և դրանց տարբերակները, որոնք օգտագործվում են այս հավելվածի նշումում, ներկայացված են ստորև.
- GUI ուղեցույց 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 GUI հավելվածը խելացի HMI ծրագրային հարթակում, նույնիսկ եթե նրանք կարդում են մշակողի ուղեցույցը և գիտեն շրջանակի մասին:
Հաջորդ բաժինները բացատրում են, թե ինչպես այն իրականացնել քայլ առ քայլ:
Մշակել LVGL GUI հավելվածը GUI Guider-ի վրա
Ինչպես նշվեց վերևում, ինչպես զարգացնել LVGL GUI-ն GUI Guider-ի վրա, այս հավելվածի գրառման մեջ շեշտադրված չէ:
Բայց GUI նախկինampանհրաժեշտ է.
Հետևաբար, GUI Guider-ում ներկայացված Slider Progress անունով մեկ պարզ GUI ձևանմուշ ընտրվում է որպես GUI նախկին:ampարագ տեղադրման համար:
Slider Progress GUI ձևանմուշն օգտագործվում է, քանի որ այն պարունակում է պատկեր, որն անհրաժեշտ է հավելվածում պատկերային ռեսուրսների կառուցման համար:
The GUI նախկինample-ն շատ հեշտ է առաջացնել. Նախագիծ ստեղծելու համար թարմացված LVGL գրադարանով V8.3.2 և տախտակի ձևանմուշը որպես MIMXRT1176xxxxx, տես GUI Guider Օգտագործողի ուղեցույցը (փաստաթուղթ ԳԻԳԻԴԵՐՈՒԳ).
Նկար 1-ը ցույց է տալիս նախագծի կարգավորումները:
Նշում. Վահանակի տեսակը պետք է ընտրվի, ինչպես ցույց է տրված Նկար 1-ի կարմիր վանդակում, քանի որ այն օգտագործվում է ընթացիկ զարգացման տախտակի վրա:
Նախագիծը ստեղծելուց հետո գործարկեք սիմուլյատորը՝ համապատասխան LVGL GUI կոդեր ստեղծելու և նախագիծը նույնպես կառուցելու համար:
Դուք կարող եք ստուգել GUI-ի ազդեցությունը նախկինումampսիմուլյատորի վրա:
Նկար 1. GUI նախագծի կարգավորումը GUI Guider-ում
Ստեղծեք ձեր նախագիծը խելացի HMI-ի վրա
Նշում. Նախ, ստեղծեք ձեր նախագիծը MCUXpresso IDE-ում:
LVGL GUI-ից հետո նախկինample կառուցվել է, այն կարող է գնալ դեպի հիմնական թիրախ՝ այն ինտեգրելու խելացի HMI ծրագրային հարթակում MCUXpresso նախագծի վրա՝ ձեր GUI հավելվածն իրականացնելու համար:
Պարզ և արագ մեթոդը խելացի HMI հարթակում ներկայացված ընթացիկ հավելվածի նախագծի կլոնավորումն է:
Վերելակների հավելվածը որպես կլոնավորված աղբյուր ավելի լավ ընտրություն է, քանի որ այն ունի պարզ իրականացում:
Ձեր նախագիծը ստեղծելու համար հետևեք հետևյալ քայլերին.
- Պատճենեք և տեղադրեք «վերելակ» թղթապանակը GitHub-ի կլոնավորված խելացի HMI սկզբնաղբյուրում: Վերանվանեք այն ձերը:
Այս նախկինի համարample, մենք ընտրել ենք «slider_progress»՝ հետևելով GUI-ի նախկին անվանումինampլե. - «Slider_progress» պանակում մուտքագրեք «lvgl_vglite_lib» թղթապանակը, որը պարունակում է LVGL GUI նախագիծը:
- Բացեք նախագծի հետ կապված files .cproject և .project և փոխարինեք բոլոր «վերելակ» տողը ձեր նախագծի անվանման տողով «slider_progress»:
- Կատարեք նմանատիպ փոխարինում երկու նախագծերի համար files «cm4» և «cm7» թղթապանակներում:
Ստեղծեք ձեր նախագիծը՝ կլոնավորելով վերելակի նախագիծը files.
Ինչպես ցույց է տրված Նկար 2 Ձեր նախագծերն այժմ կարող են բացվել MCUXpresso IDE-ում այնպես, ինչպես վերելակի նախագիծը:
Նկար 2. Նախագծերի կարգավորում MCUXpresso-ում
Ստեղծեք ռեսուրսներ խելացի HMI-ի համար
Ընդհանրապես, պատկերներն օգտագործվում են GUI-ում (ձայնային հուշումներում օգտագործվող հնչյունները նույնպես):
Պատկերները և ձայները կոչվում են ռեսուրսներ, որոնք պահվում են հաջորդականությամբ: Նախքան դրանք ֆլեշի վրա ծրագրավորելը, ռեսուրսները պետք է ներկառուցվեն երկուականի մեջ file.
Հիմնական գործը տեղեկատու հավելվածի (վերելակի) անունները ձերով փոխարինելն է:
Դա անելու համար հետևեք ստորև նշված քայլերին.
- Ջնջել կլոնավորված «պատկերներ» թղթապանակը slider_progress/resource-ի տակ:
- Պատճենեք «պատկերներ» պանակը ձեր GUI Guider նախագծում ստեղծված \գեներացված տակ:
- Տեղադրեք այն slider_progress/resource-ի տակ (Այսինքն՝ օգտագործեք ձեր սեփական պատկերները, այլ ոչ թե վերելակի հավելվածից):
- Ջնջել *.mk-ը file օգտագործվում է GUI Guider-ի համար «պատկերներ» պանակում:
- Վերանվանել files elevator_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. օգտագործվում է համապատասխանաբար Windows-ի և Linux-ի ռեսուրսները կառուցելու համար:
- Slider_progress_resource.txt-ը բացելուց հետո file, բոլոր տողերը «վերելակ» փոխարինեք «slider_progress»-ով։
- Հեռացրեք բոլոր հին պատկերները և ավելացրեք նորերը ձեր պատկերով file անունները (այստեղ «_scan_example_597x460.c»), ինչպիսին է պատկերը ../../slider_progress/resource/images/_scan_example_597x460.c.
- Բացեք slider_progress_resource.bat-ը file Windows-ի համար և փոխարինել բոլոր տողերը «elevator» «slider_progress»-ով: Նույնը արեք նաև file slider_progress_resource.sh Linux-ի համար:
- Կրկնակի սեղմեք խմբաքանակի վրա file slider_progress_resource_build.bat Windows-ի համար:
- Հրամանի պատուհանը հայտնվում է և ավտոմատ կերպով աշխատում է պատկերի ռեսուրսի երկուական տարբերակ ստեղծելու համար file պարունակող պատկերի տվյալներ և ռեսուրսների հասանելիության տեղեկատվություն, որոնք պարունակում են C կոդեր՝ պատկերների բոլոր տեղակայման վայրերը և պատկերների ընդհանուր բայթի չափը տեղադրելու համար:
«Resource Generation Complete!» հաղորդագրությունը ցուցադրելուց հետո պատկերի ռեսուրսը երկուական file slider_progress_resource.bin անունով և ռեսուրսի մուտքի տեղեկատվությունը file resource_information_table.txt անունով ստեղծվում են «resource» թղթապանակում:
Պատկերի ռեսուրսը երկուական file ծրագրավորվում է ֆլեշի վրա, և ռեսուրսների հասանելիության տեղեկատվությունը օգտագործվում է խելացի HMI-ի ռեսուրսներին մուտք գործելու համար (տես բաժին 3.4.1):
Ինտեգրել LVGL GUI հավելվածը խելացի HMI-ի մեջ
LVGL GUI հավելվածի կոդերը (այստեղ է SliderProgress GUI նախկինample) և կառուցված պատկերային ռեսուրսները, ներառյալ մուտքի տեղեկատվությունը, կարող են ավելացվել խելացի HMI-ին:
Բացի այդ, ձեր LVGL GUI հավելվածը խելացի HMI-ում իրականացնելու համար պահանջվում է ավելացնել LVGL GUI-ի հետ կապված HAL սարքերը և հարակից կոնֆիգուրացիաները:
LVGL GUI հավելվածն աշխատում է M4 միջուկի վրա, և դրա հետ կապված իրականացումը գրեթե M4 նախագծում է «sln_smart_tlhmi_slider_progress_cm4»:
Մանրամասն քայլերը նկարագրված են հետագա ենթաբաժիններում:
Ավելացնել LVGL GUI կոդեր և ռեսուրսներ
Խելացի HMI-ի համար օգտագործվող LVGL GUI հավելվածի կոդերը գտնվում են «պատվերով» և «գեներացված» թղթապանակներում՝ GUI Guider նախագծում:
Կոդերը խելացի HMI-ին ավելացնելու համար հետևեք հետևյալ քայլերին.
- Փոխարինեք custom.c-ը և custom.h-ը slider_progress/cm4/custom/-ում GUI Guider նախագծի «custom» թղթապանակում գտնվողներով:
- Հեռացրեք «ստեղծված» թղթապանակները slider_progress/cm4/-ից:
Այնուհետև պատճենեք «ստեղծված» թղթապանակը GUI Guider նախագծից և տեղադրեք այն slider_progress/cm4/-ում: - Ջնջել «image» և «mPythonImages» թղթապանակները և բոլորը files *.mk և *.py «գեներացված» թղթապանակում:
Ինչպես նշվեց վերևում, «image» թղթապանակի պատկերները ներկառուցված են ռեսուրսների երկուական տարբերակում file, ուստի «պատկեր» թղթապանակը պարտադիր չէ:
«mPythonImages» թղթապանակը և բոլորը files *.mk և *.py-ն անցանկալի են խելացի HMI-ի համար: - Խելացի HMI պլատֆորմի վրա հիմնված mutex կառավարում ավելացնելու և պատկերների տեղադրությունները ֆլեշի վրա դնելու համար փոփոխեք այն file custom.c-ը MCUXpresso IDE-ում:
Սրանք բոլորը սահմանված են RT_PLATFORM-ի կողմից: - Բացեք վերելակի նախագիծը 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.
- Ջնջեք #else-ի տակ գտնվող ծածկագրի տողերը, որոնք պարունակում են #else, քանի որ դրանք օգտագործվում են վերելակի GUI-ի համար:
Կոդերի ավելացված տողերը ներառում են հետևյալը.
- Ներառում է files-ն հետևյալն են.
- Փոփոխական հայտարարագիրը հետևյալն է.
- Custom_init() ֆունկցիայի C կոդերը հետևյալն են.
- C-ի կոդերը _takeLVGLMutex(), _giveLVGLMutex() և setup_imgs() ֆունկցիաների համար, որտեղ բոլոր պատկերների տեղադրությունները դրված են:
- Ներառում է files-ն հետևյալն են.
- Setup_imgs() ֆունկցիայի կոդերը փոխարինեք resource_information_table.txt-ում պատկերների տեղադրության տեղադրման կոդերով: file (տես Բաժին 3.3):
Այս հավելվածի նշումում կա միայն մեկ պատկերի ռեսուրս, որը ստեղծվել է հետևյալ կերպ՝ _scan_example_597x460.data = (հիմք + 0); Դա անելուց հետո setup_imgs() ֆունկցիան ցուցադրվում է հետևյալ կերպ.
- Custom.c-ի հետ կապված մակրո սահմանումը և գործառույթի հայտարարությունը ավելացնելու համար փոփոխեք custom.h-ը file տակ sln_smart_tlhmi_slider_progress_cm4 > custom, ինչպես ցույց է տրված ստորև.
- Ձեր LVGL GUI հավելվածում պատկերները սահմանելու համար փոփոխեք lvgl_images_internal.h file տակ sln_smart_tlhmi_slider_progress_cm4 > custom.
- Բացեք մեկ պատկեր *.c file (այստեղ _scan_example_597x460.c) /generated/ image/ տակ GUI Guider նախագծում:
Պատճենեք պատկերի սահմանումը վերջում file. Տեղադրեք այն lvgl_images_internal.h-ում file վերելակ հավելվածի պատկերների վերաբերյալ բոլոր բնօրինակ սահմանումները ջնջելուց հետո: - Ջնջել .data = _scan_example_597x460_map զանգվածում, քանի որ .տվյալները դրված են setup_imgs() ֆունկցիայի մեջ:
Զանգվածը վերջապես սահմանվում է lvgl_images_internal.h-ում file, ինչպես ցույց է տրված ստորև.
Նշում. Կրկնեք վերը նշված գործողությունները բոլոր պատկերների համար files մեկ առ մեկ, եթե կան բազմապատկեր files.
- Բացեք մեկ պատկեր *.c file (այստեղ _scan_example_597x460.c) /generated/ image/ տակ GUI Guider նախագծում:
- Կազմաձևեք պատկերի ռեսուրսի ընդհանուր չափը` սահմանելով մակրո սահմանումը APP_LVGL_IMGS_SIZE app_config.h-ում: file sln_smart_tlhmi_slider_progress_cm7 > աղբյուրի տակ՝ պատկերների նոր չափերով:
Այս նոր չափը հասանելի է կառուցված ռեսուրսի resource_information_table.txt-ում file.
Ավելացնել HAL սարքեր և կոնֆիգուրացիաներ
Հիմնվելով շրջանակային ճարտարապետության վրա՝ երկու HAL սարքեր (ցուցադրման և ելքային սարքեր) նախատեսված են LVGL GUI հավելվածի համար:
Երկու սարքերի իրագործումները տարբեր են՝ կախված տարբեր LVGL GUI հավելվածներից, թեև դրանց համար կան ընդհանուր ճարտարապետական նախագծեր:
Դրանք իրականացվում են առանձին՝ երկուսով files.
Հետևաբար, այն պետք է կլոնավորի երկուսը files ներկա վերելակի հավելվածից և փոփոխեք ձեր LVGL GUI հավելվածը:
Այնուհետև միացրեք ձեր սարքերը կազմաձևում file.
Ձեր LVGL GUI հավելվածը կառուցված է խելացի HMI հարթակի վրա՝ հիմնված շրջանակի վրա:
Մանրամասն փոփոխությունները կարող են կատարվել MCUXpresso IDE-ում, ինչպես ցույց է տրված ստորև.
- Ցուցադրել HAL սարքը
- Պատճենեք և տեղադրեք hal_display_lvgl_elevator.c file խմբի տակ sln_smart_tlhmi_slider_progress_cm4 > frame > hal > ցուցադրում MCUXpresso նախագծում: Ձեր դիմումի համար վերանվանեք այն hal_display_lvgl_sliderprogress.c:
- Բացեք file hal_display_lvgl_sliderprogress.c և փոխարինեք բոլոր «վերելակ» տողերը ձեր հավելվածի «SliderProgress» տողով file.
- Իրականացնել ելքային HAL սարքը
- Պատճենեք և տեղադրեք hal_output_ui_elevator.c file խմբի տակ sln_smart_tlhmi_slider_progress_cm4 > Framework > hal > ելք MCUXpresso նախագծի վրա: Ձեր դիմումի համար վերանվանեք այն hal_output_ui_sliderprogress.c:
- Բացեք 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(); - Մաքրեք HAL_OutputDev_UiElevator_InferComplete() ֆունկցիան՝ հետագայում ձեր հավելվածը ստեղծելու համար:
Ֆունկցիայում հեռացնել երկու գործառույթների կանչերը _InferComplete_Vision() և _InferComplete_Voice(), որոնք օգտագործվում են վերելակի կիրառման տեսլականի և ձայնային ալգորիթմների արդյունքները մշակելու համար: - Մաքրել HAL_OutputDev_UiElevator_InputNotify() ֆունկցիան և պահպանել հիմնական ճարտարապետությունը՝ հավելվածների հետագա զարգացման համար:
Ի վերջո, ֆունկցիան ունի հետևյալ տեսքը.
- Հեռացրեք բոլոր փոփոխականների հայտարարագրերը, ներառյալ enum-ը և զանգվածը, բացառությամբ s_UiSurface և s_AsBuffer[], որոնք օգտագործվում են ընդհանուր իրականացման համար:
- Փոխարինեք բոլոր տողերը «վերելակ» ձեր հավելվածի «SliderProgress» տողով:
- Միացնել և կարգավորել երկու HAL սարքերը
- Բացեք board_define.h file sln_smart_tlhmi_slider_progress_cm4 > տախտակի տակ:
Փոխարինեք բոլոր «վերելակ» տողերը ձեր հավելվածի «SliderProgress» տողով file.
Այն հնարավորություն է տալիս և կարգավորում է ցուցադրման և ելքային HAL սարքերը ENABLE_DISPLAY_DEV_LVGLSliderProgress և ENABLE_OUTPUT_DEV_UiSliderProgress սահմանումներով: - Բացեք lvgl_support.c-ը file sln_smart_tlhmi_slider_progress_cm4 > տախտակի տակ: Փոխարինեք բոլոր «վերելակ» տողերը ձեր հավելվածի «SliderProgress» տողով file.
Այն հնարավորություն է տալիս տեսախցիկի նախնական հնարավորությունըview էկրանի վարորդի մակարդակով GUI-ի վրա:
- Բացեք board_define.h file sln_smart_tlhmi_slider_progress_cm4 > տախտակի տակ:
- Գրանցեք երկու HAL սարքերը
Բացեք M4 հիմնական sln_smart_tlhmi_cm4.cpp file տակ sln_smart_tlhmi_slider_progress_cm4 > աղբյուր:
Փոխարինեք բոլոր «վերելակ» տողերը ձեր հավելվածի «SliderProgress» տողով file.
Այն գրանցում է ցուցադրման և ելքային HAL սարքը ձեր հավելվածի համար՝ վերելակի հավելվածի փոխարեն:
Հետևաբար, ինտեգրումն ավարտված է խելացի HMI-ում հիմնական LVGL GUI հավելվածը գործարկելու համար:
Կախված հավելվածի ավելի շատ պահանջներից, ինտեգրված հիմնական հավելվածի հիման վրա կարող են ավելացվել ավելի շատ իրականացումներ:
Ցույց
«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 հասցեով, LVGL GUI-ի ցուցադրումը կարող է հաջողությամբ աշխատել խելացի HMI մշակման տախտակի վրա (տես Նկար 3-ը էկրանի ցուցադրման համար):
Նշում. Եթե օգտագործում եք MCUXpresso IDE-ի v1.7.0-ը, նախքան CM4 նախագիծը կառուցելը, միացրեք «Կառավարել հղման սկրիպտը» Պարամետրում > MCU C++ Linker > Managed Linker Script:
Նկար 3. LVGL GUI ցուցադրական ցուցադրում խելացի HMI զարգացման տախտակի վրա
Վերանայման պատմություն
Վերանայման պատմությունն ամփոփում է այս փաստաթղթի վերանայումները:
Աղյուսակ 1. Վերանայման պատմություն
Վերանայման համարը | Ամսաթիվ | Էական փոփոխություններ |
1 | 16 հունիսի 2023 թ | Նախնական թողարկում |
Նշում փաստաթղթի սկզբնաղբյուրի մասին
ExampԱյս փաստաթղթում ներկայացված le կոդը ունի հետևյալ հեղինակային իրավունքը և BSD-3-Clause լիցենզիան.
Հեղինակային իրավունք 2023 NXP Վերաբաշխումը և օգտագործումը սկզբնաղբյուր և երկուական ձևերով, փոփոխությամբ կամ առանց փոփոխության, թույլատրվում է հետևյալ պայմանների բավարարման պայմանով.
- Աղբյուրի կոդի վերաբաշխումները պետք է պահպանեն վերը նշված հեղինակային իրավունքի մասին ծանուցումը, պայմանների այս ցանկը և հետևյալ հերքումը:
- Երկուական ձևով վերաբաշխումները պետք է վերարտադրեն վերը նշված հեղինակային իրավունքի մասին ծանուցումը, պայմանների այս ցանկը և փաստաթղթերի և/կամ այլ նյութերի հետևյալ հերքումը պետք է տրամադրվեն բաշխմանը:
- Ոչ հեղինակային իրավունքի սեփականատիրոջ անունը, ոչ էլ դրա ներդրողների անունները չեն կարող օգտագործվել այս ծրագրակազմից ստացված ապրանքները հավանություն տալու կամ խթանելու համար `առանց նախնական գրավոր թույլտվության:
ԱՅՍ ԾՐԱԳՐԱԿԱՆ ԾՐԱԳՐԵՐԸ ՏՐԱՄԱԴՐՎՈՒՄ ԵՆ ՀԵՂԻՆԱԿԱՅԻՆ ԻՐԱՎՈՒՆՔՆԵՐԻ ԵՎ ՆԵՐԿԱՅԱՑՐՈՂՆԵՐԻ ԿՈՂՄԻՑ «ԻՆՉՊԵՍ ԿԱ» ԵՎ ՑԱՆԿԱՑԱԾ ԿԱՄ ՆԿՅԱԼԻ ԵՐԱՇԽԻՔՆԵՐԸ, ՆԵՐԱՌՅԱԼ, ԲԱՅՑ ՉՍԱՀՄԱՆԱՓԱԿՎՈՒՄ ԵՆ ԱՆՀՐԱԺԵՇՏԱԿԱՆ ԵՐԱՇԽԻՔՆԵՐՈՎ ԱՆՀՐԱԺԵՇՏՈՒԹՅԱՆ ԵՎ ԱՆՀՐԱԺԵՇՏՈՒԹՅԱՆ ՀԱՄԱՐ:
ՈՉ ՄԻ ԴԵՊՔՈՒՄ ՀԵՂԻՆԱԿԱՅԻՆ ԻՐԱՎՈՒՆՔՆԵՐԻ ՏԵՂԵԿԱՏԵՐԸ ԿԱՄ ՆԵՐԿԱՅԱՑՎՈՂՆԵՐԸ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅՈՒՆ ՉԵՆ ՈՒՂԻՂ ՈՐԵՎԷ ՈՒՂԻՂ, ԱՆՈՒՂՂԱԿԱՆ, ՀԱՏՈՒԿ, ՕՐԻՆԱԿԱՆ ԿԱՄ ՀԵՏԵՎԱՆՔԱԿԱՆ ՎՆԱՍՆԵՐԻ ՀԱՄԱՐ (ՆԵՐԱՌՅԱԼ, ԲԱՅՑ ԱՆՊԱՍՏԱԿԱՆ, ՕԳՏԱԳՈՐԾՄԱՆ, ՏՎՅԱԼՆԵՐԻ ԿԱՄ ՇԱՀՈՒԹՅԱՆ; ԿԱՄ ԳՈՐԾԱՐԱՐ ԸՆԴԴԱՐՁՈՒՄԸ, ԻՆՉՊԵՍ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅԱՆ ՑԱՆԿԱՑԱԾ ՏԵՍՈՒԹՅԱՆ ՎԵՐԱԲԵՐՅԱԼ, ՊԱՅՄԱՆԱԳՐՈՎ, ԽԻՍՏ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅԱՆ, ԹԵ ԱՆՀՐԱԺԵՇՏՈՒԹՅԱՆ, ՆԵՐԱՌՅԱԼ ԱՆՀՐԱԺԵՇՏՈՒԹՅԱՆ ԿԱՄ ՀԱԿԱՌԱԿԻՑ ԲԱՑԱՌՎԱԾ ԱՄԵՆՑ ԴԵՊԻ, Զ ԱՅՍՊԱՆԻ ՀՆԱՐԱՎՈՐՈՒԹՅՈՒՆԸ
ՎՆԱՍ.
Իրավական տեղեկատվություն
Սահմանումներ
Նախագիծ: Փաստաթղթի կարգավիճակի նախագիծը ցույց է տալիս, որ բովանդակությունը դեռ գտնվում է ներքին վերանայման տակview և ենթակա է պաշտոնական հաստատման, որը կարող է հանգեցնել փոփոխությունների կամ լրացումների:
NXP Semiconductors-ը որևէ երաշխիք կամ երաշխիք չի տալիս փաստաթղթի նախագծային տարբերակում ներառված տեղեկատվության ճշգրտության կամ ամբողջականության վերաբերյալ և պատասխանատվություն չի կրում այդ տեղեկատվության օգտագործման հետևանքների համար:
Հրաժարումներ
Սահմանափակ երաշխիք և պատասխանատվություն. Ենթադրվում է, որ այս փաստաթղթում առկա տեղեկատվությունը ճշգրիտ է և հուսալի:
Այնուամենայնիվ, NXP Semiconductors-ը որևէ հայտարարություն կամ երաշխիք չի տալիս՝ արտահայտված կամ ենթադրյալ, նման տեղեկատվության ճշգրտության կամ ամբողջականության վերաբերյալ և պատասխանատվություն չի կրում այդ տեղեկատվության օգտագործման հետևանքների համար:
NXP Semiconductors-ը պատասխանատվություն չի կրում այս փաստաթղթի բովանդակության համար, եթե տրամադրված է NXP Semiconductors-ից դուրս տեղեկատվական աղբյուրի կողմից:
Ոչ մի դեպքում NXP Semiconductors-ը պատասխանատվություն չի կրում որևէ անուղղակի, պատահական, պատժիչ, հատուկ կամ հետևանքային վնասների համար (ներառյալ՝ առանց սահմանափակման՝ կորցրած շահույթը, կորցրած խնայողությունները, բիզնեսի ընդհատումը, որևէ ապրանքի հեռացման կամ փոխարինման կամ վերամշակման վճարների հետ կապված ծախսերը). կամ ոչ, այդպիսի վնասները հիմնված են խախտման (ներառյալ անփութության), երաշխիքի, պայմանագրի խախտման կամ որևէ այլ իրավական տեսության վրա:
Անկախ այն վնասներից, որոնք հաճախորդը կարող է կրել որևէ պատճառով, NXP Semiconductors-ի համախառն և կուտակային պատասխանատվությունը հաճախորդի նկատմամբ սույն հոդվածում նկարագրված ապրանքների համար պետք է սահմանափակվի NXP Semiconductors-ի առևտրային վաճառքի դրույթներին և պայմաններին համապատասխան:
Փոփոխություններ կատարելու իրավունք. NXP Semiconductors-ն իրեն իրավունք է վերապահում փոփոխություններ կատարել սույն փաստաթղթում հրապարակված տեղեկատվության մեջ, ներառյալ առանց սահմանափակման բնութագրերի և արտադրանքի նկարագրությունների, ցանկացած ժամանակ և առանց ծանուցման:
Սույն փաստաթուղթը փոխարինում և փոխարինում է մինչև սույն հոդվածի հրապարակումը տրամադրված բոլոր տեղեկությունները:
Օգտագործման հարմարությունը. NXP Semiconductors-ի արտադրանքը նախագծված, լիազորված կամ երաշխավորված չէ կյանքի պահպանման, կյանքի համար կարևոր կամ անվտանգության համար կարևոր համակարգերում կամ սարքավորումներում օգտագործելու համար, ինչպես նաև այն ծրագրերում, որտեղ NXP Semiconductors արտադրանքի խափանումը կամ անսարքությունը կարող է ողջամտորեն ակնկալվել, որ կհանգեցնի անձնական կյանքին: վնասվածք, մահ կամ ծանր գույքային կամ շրջակա միջավայրի վնաս:
NXP Semiconductors-ը և նրա մատակարարները պատասխանատվություն չեն կրում NXP Semiconductors-ի արտադրանքը նման սարքավորումներում կամ հավելվածներում ներառելու և/կամ օգտագործելու համար, և, հետևաբար, այդպիսի ներառումը և/կամ օգտագործումը հաճախորդի սեփական ռիսկով է:
Ծրագրեր: Հավելվածները, որոնք նկարագրված են այստեղ այս ապրանքներից որևէ մեկի համար, նախատեսված են միայն լուսաբանման նպատակով:
NXP Semiconductors-ը չի ներկայացնում կամ երաշխիք, որ նման հավելվածները հարմար կլինեն նշված օգտագործման համար՝ առանց հետագա փորձարկման կամ փոփոխման:
Հաճախորդները պատասխանատու են NXP Semiconductors արտադրանքի օգտագործմամբ իրենց հավելվածների և արտադրանքների նախագծման և շահագործման համար, և NXP Semiconductors-ը պատասխանատվություն չի կրում հավելվածների կամ հաճախորդների արտադրանքի նախագծման հետ կապված որևէ օգնության համար:
Հաճախորդի միակ պատասխանատվությունն է որոշել, թե արդյոք NXP Semiconductors արտադրանքը հարմար է և համապատասխանում է հաճախորդի ծրագրերին և ծրագրված արտադրանքներին, ինչպես նաև հաճախորդի երրորդ կողմի հաճախորդ(ների) պլանավորված կիրառման և օգտագործման համար:
Հաճախորդները պետք է ապահովեն համապատասխան նախագծման և շահագործման երաշխիքներ՝ նվազագույնի հասցնելու իրենց կիրառությունների և արտադրանքի հետ կապված ռիսկերը:
NXP Semiconductors-ը չի ընդունում որևէ պատասխանատվություն՝ կապված որևէ դեֆոլտի, վնասի, ծախսերի կամ խնդրի հետ, որը հիմնված է հաճախորդի հավելվածների կամ արտադրանքի որևէ թուլության կամ դեֆոլտի կամ հաճախորդի երրորդ կողմի հաճախորդի(ների) կողմից հավելվածի կամ օգտագործման վրա:
Հաճախորդը պատասխանատու է NXP Semiconductors-ի արտադրանքի օգտագործմամբ հաճախորդի հավելվածների և արտադրանքների համար անհրաժեշտ բոլոր փորձարկումների համար, որպեսզի խուսափի հավելվածների և ապրանքների կամ հավելվածի կամ հաճախորդի երրորդ կողմի հաճախորդ(ների) կողմից օգտագործելուց: NXP-ն այս առումով որևէ պատասխանատվություն չի ընդունում
Առևտրային վաճառքի պայմաններն ու պայմանները. NXP Semiconductors-ի արտադրանքը վաճառվում է առևտրային վաճառքի ընդհանուր պայմաններով և պայմաններով, ինչպես հրապարակված է կայքում http://www.nxp.com/profile/terms, եթե այլ բան նախատեսված չէ վավեր գրավոր անհատական պայմանագրով:
Անհատական համաձայնագրի կնքման դեպքում կիրառվում են միայն համապատասխան պայմանագրի պայմանները:
NXP Semiconductors-ը սույնով բացահայտորեն դեմ է հաճախորդի կողմից NXP Semiconductors-ի արտադրանքի գնման հետ կապված հաճախորդի ընդհանուր դրույթների և պայմանների կիրառմանը:
Արտահանման հսկողություն. Այս փաստաթուղթը, ինչպես նաև սույն հոդվածում նկարագրված իրերը կարող են ենթարկվել արտահանման հսկողության կանոնակարգերի:
Արտահանումը կարող է պահանջել իրավասու մարմինների նախնական թույլտվություն:
Ոչ ավտոմոբիլային որակյալ արտադրանքներում օգտագործելու պիտանիությունը. Եթե այս տվյալների թերթիկում հստակ նշված չէ, որ NXP Semiconductors-ի այս հատուկ արտադրանքը ավտոմոբիլային որակավորում ունի, արտադրանքը հարմար չէ ավտոմոբիլային օգտագործման համար:
Այն ոչ որակավորված է, ոչ էլ փորձարկված՝ համաձայն ավտոմոբիլային թեստավորման կամ կիրառման պահանջների: NXP Semiconductors-ը պատասխանատվություն չի կրում ավտոմոբիլային սարքավորումներում կամ հավելվածներում ոչ ավտոմոբիլային որակյալ ապրանքներ ներառելու և/կամ օգտագործելու համար:
Այն դեպքում, երբ հաճախորդն օգտագործում է արտադրանքը նախագծման և ավտոմոբիլային կիրառություններում ավտոմեքենայի տեխնիկական բնութագրերի և ստանդարտների համար, հաճախորդը (ա) պետք է օգտագործի արտադրանքը առանց NXP Semiconductors-ի արտադրանքի երաշխիքի նման ավտոմոբիլային կիրառությունների, օգտագործման և բնութագրերի համար, և ( բ) երբ հաճախորդն օգտագործում է արտադրանքը NXP Semiconductors-ի բնութագրերից դուրս ավտոմոբիլային կիրառումների համար, այդ օգտագործումը պետք է լինի բացառապես հաճախորդի սեփական ռիսկով, և (գ) հաճախորդը լիովին փոխհատուցում է NXP Semiconductors-ի ցանկացած պատասխանատվություն, վնաս կամ արտադրանքի ձախողված պահանջներ, որոնք բխում են հաճախորդի նախագծումից և օգտագործումից: 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
Փաստաթղթեր / ռեսուրսներ
![]() |
NXP AN13948 LVGL GUI հավելվածի ինտեգրում Smart HMI հարթակում [pdf] Օգտագործողի ձեռնարկ AN13948 LVGL GUI հավելվածի ինտեգրում Smart HMI հարթակում, AN13948, LVGL GUI հավելվածի ինտեգրում Smart HMI հարթակում |