Files
luban-lite-t3e-pro/doc/topics/sdk/lvgl/lvgl_add_app.html
2025-01-23 16:37:00 +08:00

334 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="本章节演示如何添加一个名为 test_demo 的 LVGL 应用,来实现以下功能: 主界面添加一个 button 控件,按键时,在控件上显示当前后台计数。 后台线程进行计时,每一秒计数加一。 添加 APP 选项 在 application/Kconfig 中,添加以下代码: config AIC_LVGL_METER_DEMO bool &#34;LVGL demo of meter&#34; config ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="topic"/><meta name="DC.relation" content="../../../topics/sdk/lvgl/lvgl_introduction.html"/><meta name="DC.relation" content="../../../topics/sdk/lvgl/lvgl-demo.html"/><meta name="DC.relation" content="../../../topics/sdk/lvgl/lvgl_special_func.html"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-01-15"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="id"/><meta name="DC.language" content="zh-CN"/><title>添加应用</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="id-d5856e4832"/><meta name="wh-source-relpath" content="topics/sdk/lvgl/lvgl_add_app.dita"/><meta name="wh-out-relpath" content="topics/sdk/lvgl/lvgl_add_app.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
<body id="id" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
</div>
</div>
</header>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
</div>
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>主页</span></a></span></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div></li><li><div class="topicref" data-id="concept_mcc_32s_nbc"><div class="title"><a href="../../../topics/chapter-title/chapter-multi-media-sdk.html">多媒体</a><div class="wh-tooltip"><p class="shortdesc">GE、VE、Display、DVP、MPP、MPP 播放器等多媒体模块的介绍和使用说明。</p></div></div></div></li><li><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_introduction.html">LVGL 使用指南</a></div></div></li><li class="active"><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_add_app.html">添加应用</a></div></div></li></ol></div>
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
<span class="navprev"><a class="- topic/link link" href="../../../topics/sdk/lvgl/lvgl-demo.html" title="LVGL Demo" aria-label="上一主题: LVGL Demo" rel="prev"></a></span>
<span class="navnext"><a class="- topic/link link" href="../../../topics/sdk/lvgl/lvgl_special_func.html" title="屏幕旋转" aria-label="下一主题: 屏幕旋转" rel="next"></a></span> </span></div>
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
<button type="button" id="wh_toc_button" class="custom-toggler navbar-toggler collapsed wh_toggle_button navbar-light" aria-expanded="false" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<nav id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none" aria-label="Table of Contents Container">
<div id="wh_publication_toc_content">
<div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem"><div data-tocid="revinfo_linux-d5856e989" class="topicref" data-id="revinfo_linux" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/revinfo/revinfo_rtos.html" id="revinfo_linux-d5856e989-link">修订记录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e1003" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e1003-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/env/sdk-compile.html" id="id-d5856e1003-link">SDK 编译</a><div class="wh-tooltip"><p class="shortdesc">介绍不同编译环境下 SDK 的详细编译流程。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e1152" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e1152-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/sdk-usage.html" id="id-d5856e1152-link">使用指南</a><div class="wh-tooltip"><p class="shortdesc">系统镜像、编译选项、开发板、应用等相关的详细使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rcx_czh_pzb-d5856e1416" class="topicref" data-id="concept_rcx_czh_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rcx_czh_pzb-d5856e1416-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-app.html" id="concept_rcx_czh_pzb-d5856e1416-link">应用场景</a><div class="wh-tooltip"><p class="shortdesc">描述了 SDK 在不同应用场景中的配置和使用包括系统更新、OTA、安全方案等。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e2119" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e2119-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/peripheral/peripheral-intro.html" id="id-d5856e2119-link">外设移植</a><div class="wh-tooltip"><p class="shortdesc"><span class="ph">CTP、U 盘、SD 卡、有线和无线网络</span>等外设的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e2244" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e2244-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/chapter-bringup.html" id="id-d5856e2244-link">BringUp</a><div class="wh-tooltip"><p class="shortdesc">在硬件上电后快速初始化系统,为操作系统的启动准备好必要的硬件环境。</p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="id-d5856e2345" class="topicref" data-id="id" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action id-d5856e2345-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html" id="id-d5856e2345-link">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="_0-d5856e2360" class="topicref" data-id="_0" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action _0-d5856e2360-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/boot/lite_boot_direct.html" id="_0-d5856e2360-link">启动引导</a><div class="wh-tooltip"><p class="shortdesc">启动引导程序 Bootloader 可以实现加载启动应用程序、 烧录和升级功能。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-system-d5856e2435" class="topicref" data-id="chapter-system" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-system-d5856e2435-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-system.html" id="chapter-system-d5856e2435-link">系统</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-memory-d5856e3357" class="topicref" data-id="chapter-memory" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-memory-d5856e3357-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-memory-sdk.html" id="chapter-memory-d5856e3357-link">存储</a><div class="wh-tooltip"><p class="shortdesc">SDMC、SPI NAND、SPI NOR<span class="ph"> 以及文件系统</span> 等存储模块的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_mcc_32s_nbc-d5856e3639" class="topicref" data-id="concept_mcc_32s_nbc" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_mcc_32s_nbc-d5856e3639-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-multi-media-sdk.html" id="concept_mcc_32s_nbc-d5856e3639-link">多媒体</a><div class="wh-tooltip"><p class="shortdesc">GE、VE、Display、DVP、MPP、MPP 播放器等多媒体模块的介绍和使用说明。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e3654" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e3654-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/audio/audio_user_guide.html" id="id-d5856e3654-link">Audio 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e3714" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e3714-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/display/display_user_guide_2.html" id="id-d5856e3714-link">Display 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_h4d_fwt_tzb-d5856e3955" class="topicref" data-id="concept_h4d_fwt_tzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_h4d_fwt_tzb-d5856e3955-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/dvp/dvp_user_guide_2.html" id="concept_h4d_fwt_tzb-d5856e3955-link">DVP 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="ge-d5856e4075" class="topicref" data-id="ge" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action ge-d5856e4075-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/ge/ge_user_guide_2.html" id="ge-d5856e4075-link">GE 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="i2s-d5856e4195" class="topicref" data-id="i2s" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action i2s-d5856e4195-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/i2s/i2s_user_guide_2.html" id="i2s-d5856e4195-link">I2S 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="ve-d5856e4303" class="topicref" data-id="ve" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action ve-d5856e4303-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/ve/ve-user-guide_2.html" id="ve-d5856e4303-link">VE 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="mpp-d5856e4363" class="topicref" data-id="mpp" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action mpp-d5856e4363-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/mpp/mpp_user_guide_2.html" id="mpp-d5856e4363-link">MPP 使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="mpp_0-d5856e4495" class="topicref" data-id="mpp_0" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action mpp_0-d5856e4495-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/mpp/mpp_player_user_guide_2.html" id="mpp_0-d5856e4495-link">MPP 播放器使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e4579" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e4579-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/mpp/mpp_recorder_user_guide.html" id="id-d5856e4579-link">MPP 录像使用指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e4651" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e4651-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/mpp/mini_audio_player_user_guide.html" id="id-d5856e4651-link">MPP 音频播放器使用指南</a></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="id-d5856e4724" class="topicref" data-id="id" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action id-d5856e4724-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_introduction.html" id="id-d5856e4724-link">LVGL 使用指南</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="id-d5856e4736" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_configure.html" id="id-d5856e4736-link">参数配置</a></div></div></li><li role="treeitem"><div data-tocid="id-d5856e4748" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_debug_guide.html" id="id-d5856e4748-link">调试指南</a></div></div></li><li role="treeitem"><div data-tocid="id-d5856e4760" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_test_guide.html" id="id-d5856e4760-link">测试指南</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d5856e4772" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d5856e4772-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_design_guide.html" id="id-d5856e4772-link">设计说明</a></div></div></li><li role="treeitem" class="active"><div data-tocid="id-d5856e4832" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_add_app.html" id="id-d5856e4832-link">添加应用</a></div></div></li><li role="treeitem"><div data-tocid="id-d5856e4844" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_special_func.html" id="id-d5856e4844-link">屏幕旋转</a></div></div></li><li role="treeitem"><div data-tocid="id-d5856e4856" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/lvgl/lvgl_faq.html" id="id-d5856e4856-link">常见问题</a></div></div></li></ul></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nww_hzh_pzb-d5856e4868" class="topicref" data-id="concept_nww_hzh_pzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nww_hzh_pzb-d5856e4868-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-interface-sdk.html" id="concept_nww_hzh_pzb-d5856e4868-link">接口</a><div class="wh-tooltip"><p class="shortdesc">CAN<span class="ph">、CAP</span>、CIR、GPAI、GPIO、I2C、PSADC、PWM 等接口模块的介绍和使用说明。</p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="chapter-safety-d5856e6083" class="topicref" data-id="chapter-safety" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action chapter-safety-d5856e6083-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/chapter-title/chapter-safety-sdk.html" id="chapter-safety-d5856e6083-link">安全</a><div class="wh-tooltip"><p class="shortdesc">SPI ENC、CE、eFuse 等安全模块的介绍和使用说明。</p></div></div></div></li></ul></li></ul></div>
</div>
</nav>
<div class="col-lg-7 col-md-9 col-sm-12" id="wh_topic_body">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic topic" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/lvgl/lvgl_add_app.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">添加应用</h1><div class="date inPage">15 Jan 2024</div><div style="color: gray;">
Read time: 3 minute(s)
</div><div class="- topic/body body"><p class="- topic/p p" data-ofbid="d276689e19__20250121171748">本章节演示如何添加一个名为
<code class="+ topic/ph pr-d/codeph ph codeph">test_demo</code> 的 LVGL
应用,来实现以下功能:</p><ol class="- topic/ol ol arabic simple" id="id__ol_epd_3d3_bdc" data-ofbid="id__ol_epd_3d3_bdc"><li class="- topic/li li" data-ofbid="d276689e25__20250121171748">
<p class="- topic/p p" data-ofbid="d276689e27__20250121171748">主界面添加一个 button
控件,按键时,在控件上显示当前后台计数。</p>
</li><li class="- topic/li li" data-ofbid="d276689e30__20250121171748">
<p class="- topic/p p" data-ofbid="d276689e32__20250121171748">后台线程进行计时,每一秒计数加一。</p>
</li></ol><section class="- topic/section section" id="id__app" data-ofbid="id__app"><h2 class="- topic/title title sectiontitle">添加 APP 选项</h2>
<div class="- topic/p p" data-ofbid="d276689e40__20250121171748"><span class="+ topic/ph sw-d/filepath ph filepath">application/Kconfig</span>
中,添加以下代码:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_cms_plh_fdc" data-ofbid="id__codeblock_cms_plh_fdc">config AIC_LVGL_METER_DEMO
bool <span class="hl-string">"LVGL demo of meter"</span>
config AIC_LVGL_TEST_DEMO # 添加 AIC_LVGL_TEST_DEMO以便在 menuconfig 菜单中选择
bool <span class="hl-string">"LVGL demo of test"</span>
config AIC_LVGL_LAUNCHER_DEMO
bool <span class="hl-string">"LVGL launcher demo"</span></pre></div>
</section><section class="- topic/section section" id="id__id2" data-ofbid="id__id2"><h2 class="- topic/title title sectiontitle">配置 APP</h2>
<ol class="- topic/ol ol" id="id__ol_hmm_tzv_3dc" data-ofbid="id__ol_hmm_tzv_3dc"><li class="- topic/li li" data-ofbid="d276689e54__20250121171748">
<div class="- topic/div div section" id="id__id3">
<strong class="+ topic/ph hi-d/b ph b">选择 APP</strong>
<div class="- topic/p p" data-ofbid="d276689e61__20250121171748">使用 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">scons --menuconfig</span><span class="+ topic/keyword sw-d/cmdname keyword cmdname">me</span>
进入配置菜单,选择新添加的 <code class="+ topic/ph pr-d/codeph ph codeph">test_demo</code>
并保存:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_fkh_qlh_fdc" data-ofbid="id__codeblock_fkh_qlh_fdc">Application options ---&gt;
[*] ArtInChip LVGL demo ---&gt;
select LVGL demo (LVGL demo of test) ---&gt;
( ) LVGL demo with basic function
( ) LVGL demo of meter
(X) LVGL demo of test
( ) LVGL launcher demo</pre></div></div>
</li><li class="- topic/li li" data-ofbid="d276689e75__20250121171748">
<div class="- topic/div div section" id="id__id4">
<strong class="+ topic/ph hi-d/b ph b">配置素材路径</strong><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_vwt_rlh_fdc" data-ofbid="id__codeblock_vwt_rlh_fdc">Application options ---&gt;
[*] Using File System Image <span class="hl-number">0</span>
(packages/artinchip/lvgl-ui/aic_demo/test_demo/lvgl_src/) Data Directory # 该路径以 SDK 为根目录,根据实际情况自行修改
[*] Using File System Image <span class="hl-number">1</span>
(packages/artinchip/lvgl-ui/aic_demo/test_demo/lvgl_src/) Data Directory # 该路径以 SDK 为根目录,根据实际情况自行修改</pre>
</div>
</li></ol>
</section><section class="- topic/section section" id="id__id5" data-ofbid="id__id5"><h2 class="- topic/title title sectiontitle">源码适配</h2>
<div class="- topic/div div section" id="id__id6">
<strong class="+ topic/ph hi-d/b ph b">源代码</strong>
<ol class="- topic/ol ol" id="id__ol_nwz_d1w_3dc" data-ofbid="id__ol_nwz_d1w_3dc"><li class="- topic/li li" data-ofbid="d276689e97__20250121171748">
<p class="- topic/p p" data-ofbid="d276689e99__20250121171748">下载完整源码包 <a class="- topic/xref xref" href="../../../out/external-references/test_demo.zip"><code class="+ topic/ph pr-d/codeph ph codeph">test_demo</code></a></p>
</li><li class="- topic/li li" data-ofbid="d276689e107__20250121171748">
<div class="- topic/p p" data-ofbid="d276689e109__20250121171748">将源码解压缩至 <span class="+ topic/ph sw-d/filepath ph filepath">packages/artinchip/lvgl-ui/aic_demo</span>
目录下,文件结构为:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_w2j_slh_fdc" data-ofbid="id__codeblock_w2j_slh_fdc">tree -h</pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_l51_nyr_5dc" data-ofbid="id__codeblock_l51_nyr_5dc">.
└── [<span class="hl-number">4.0</span>K] test_demo
├── [<span class="hl-number">4.0</span>K] lvgl_src
│ └── [ <span class="hl-number">0</span>] readme.txt # 该文件用于验证资源打包,本身为空文件
├── [ <span class="hl-number">571</span>] SConscript
├── [<span class="hl-number">4.0</span>K] thread
│ ├── [<span class="hl-number">1.0</span>K] test_thread.c
│ └── [ <span class="hl-number">211</span>] test_thread.h
└── [<span class="hl-number">4.0</span>K] ui
├── [<span class="hl-number">1.3</span>K] test_ui.c
└── [ <span class="hl-number">228</span>] test_ui.h</pre></div>
</li><li class="- topic/li li" data-ofbid="d276689e119__20250121171748">
<div class="- topic/div div section" id="id__sconscript">
<strong class="+ topic/ph hi-d/b ph b">SConscript 更改</strong>
<div class="- topic/p p" data-ofbid="d276689e126__20250121171748">根据实际项目路径修改<code class="+ topic/ph pr-d/codeph ph codeph">test_demo</code> 中的
SConscript解析如下<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_msw_slh_fdc" data-ofbid="id__codeblock_msw_slh_fdc">from building import *
import os
cwd = GetCurrentDir()
group = []
src = Glob(<span class="hl-string">'*.c'</span>)
# 源文件路径
src += Glob(<span class="hl-string">'./ui/*.c'</span>)
src += Glob(<span class="hl-string">'./thread/*.c'</span>)
CPPPATH = [cwd]
# 头文件路径
CPPPATH.append(cwd + <span class="hl-string">'./ui'</span>)
CPPPATH.append(cwd + <span class="hl-string">'./thread'</span>)
list = os.listdir(cwd)
<strong class="hl-keyword">for</strong> d in list:
path = os.path.join(cwd, d)
<strong class="hl-keyword">if</strong> os.path.isfile(os.path.join(path, <span class="hl-string">'SConscript'</span>)):
group = group + SConscript(os.path.join(d, <span class="hl-string">'SConscript'</span>))
# AIC_LVGL_TEST_DEMO 宏需要与 application/Kconfig 中添加的宏一致
group = group + DefineGroup(<span class="hl-string">'LVGL-port'</span>, src, depend = [<span class="hl-string">'AIC_LVGL_TEST_DEMO'</span>], CPPPATH = CPPPATH)
Return(<span class="hl-string">'group'</span>)</pre></div>
</div>
</li></ol></div>
</section><section class="- topic/section section" id="id__lvgl" data-ofbid="id__lvgl"><h2 class="- topic/title title sectiontitle">对接 LVGL 框架</h2>
<p class="- topic/p p" data-ofbid="d276689e141__20250121171748"><span class="- topic/ph ph">Luban-Lite</span> SDK 中,已经融合了 LVGL-8.3.2,并与 AIC 芯片硬件接口、加速模块、触控等进行了对接,因此用户只需要将 UI
部分的功能接入即可。</p>
<div class="- topic/p p" data-ofbid="d276689e146__20250121171748"><span class="+ topic/ph sw-d/filepath ph filepath">packages/artinchip/lvgl-ui/aic_ui.c</span>
中,添加:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_iwl_tlh_fdc" data-ofbid="id__codeblock_iwl_tlh_fdc"><em class="hl-comment">/*
* Copyright (C) 2022-2023 ArtinChip Technology Co., Ltd.
* Authors: Ning Fang &lt;ning.fang@artinchip.com&gt;
*/</em>
#include <span class="hl-string">"lvgl.h"</span>
#include <span class="hl-string">"aic_ui.h"</span>
#include <span class="hl-string">"aic_osal.h"</span>
#ifdef AIC_LVGL_TEST_DEMO
#include <span class="hl-string">"test_demo/thread/test_thread.h"</span>
#include <span class="hl-string">"test_demo/ui/test_ui.h"</span>
#endif
<strong class="hl-keyword">void</strong> aic_ui_init()
{
#ifdef AIC_LVGL_BASE_DEMO
#include <span class="hl-string">"base_ui.h"</span>
base_ui_init();
#endif
#ifdef AIC_LVGL_METER_DEMO
#include <span class="hl-string">"meter_ui.h"</span>
meter_ui_init();
#endif
#ifdef AIC_LVGL_LAUNCHER_DEMO
<strong class="hl-keyword">extern</strong> <strong class="hl-keyword">void</strong> launcher_ui_init();
launcher_ui_init();
#endif
#ifdef AIC_LVGL_MUSIC_DEMO
<strong class="hl-keyword">extern</strong> <strong class="hl-keyword">void</strong> lv_demo_music(<strong class="hl-keyword">void</strong>);
lv_demo_music();
#endif
#ifdef AIC_LVGL_TEST_DEMO
test_thread();
test_ui_init();
#endif
<strong class="hl-keyword">return</strong>;
}</pre></div>
</section><section class="- topic/section section" id="id__id7" data-ofbid="id__id7"><h2 class="- topic/title title sectiontitle">效果展示</h2>
<p class="- topic/p p" data-ofbid="d276689e159__20250121171748">编译、烧录后,显示效果如下图:</p>
<figure class="- topic/fig fig fignone" data-ofbid="d276689e162__20250121171748"><br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="id__image_lpd_3d3_bdc" src="../../../images/lvgl/test_demo_ui.jpg" width="576" alt="test_demo_ui"/></div><br/></figure>
</section></div></article></main></div>
</div>
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
<div id="wh_topic_toc_content">
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#id__app" data-tocid="id__app">添加 APP 选项</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id2" data-tocid="id__id2">配置 APP</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id5" data-tocid="id__id5">源码适配</a></div></li><li class="section-item"><div class="section-title"><a href="#id__lvgl" data-tocid="id__lvgl">对接 LVGL 框架</a></div></li><li class="section-item"><div class="section-title"><a href="#id__id7" data-tocid="id__id7">效果展示</a></div></li></ul></div>
</div>
</nav>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
<style><!--
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
--></style>
<div class="webhelp.fragment.footer">
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
</div><div>
<div class="generation_time">
Update Time: 2025-01-21
</div>
</div>
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>