Files
luban-lite/doc/topics/sdk/bringup/lite-bringup-samples.html
刘可亮 11c97ef399 v1.2.1
2025-07-22 11:15:46 +08:00

383 lines
33 KiB
HTML
Raw Permalink 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.1">
<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="LVGL Demo 如需运行 LVGL demo 可在 Luban-Lite 系统 RT-Thread 配置中执行 me 命令打开配置界面,具体步骤如下: 进入 Application options 配置 Application options ---&gt; *** Filesystem related *** [*] Using File System Image 0 ---&gt; [*] ..."/><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/bringup/chapter-bringup.html"/><meta name="DC.relation" content="../../../topics/sdk/display/display_faq_screen.html"/><meta name="DC.relation" content="../../../topics/sdk/chapter-advanced-app.html"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2025-05-16"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="id"/><meta name="DC.language" content="zh-CN"/><title>示例程序</title><!-- Generated with build number 2025051600. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="id-d3752e2403"/><meta name="wh-source-relpath" content="topics/sdk/bringup/lite-bringup-samples.dita"/><meta name="wh-out-relpath" content="topics/sdk/bringup/lite-bringup-samples.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2024041900"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2024041900"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250519091401"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2024041900"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250519091401"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2024041900"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2024041900"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-styles-web-internal.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/notes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-common.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-images.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/footnote.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/aic-highlight-changes.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/search-in-header.css?buildId=2024041900"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/css/topic-body-list.css?buildId=2024041900"/></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 xmlns:whc="http://www.oxygenxml.com/webhelp/components" 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="https://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo.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 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>
</div>
</header>
<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/bringup/chapter-bringup.html">BringUp</a><div class="wh-tooltip"><p class="shortdesc">主要描述板卡的各项配置,使 SDK 的环境和板卡匹配,并确保 SDK 编译后的固件能够在板子上正常运行。</p></div></div></div></li><li class="active"><div class="topicref" data-id="id"><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-samples.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/display/display_faq_screen.html" title="调屏常见问题" aria-label="上一主题: 调屏常见问题" rel="prev"></a></span>
<span class="navnext"><a class="- topic/link link" href="../../../topics/sdk/chapter-advanced-app.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-d3752e463" 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-d3752e463-link">修订记录</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e480" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e480-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/env/sdk-compile.html" id="id-d3752e480-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-d3752e604" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e604-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/sdk-usage.html" id="id-d3752e604-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-d3752e1004" 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-d3752e1004-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-app.html" id="concept_rcx_czh_pzb-d3752e1004-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-d3752e1848" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e1848-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/peripheral/peripheral-intro.html" id="id-d3752e1848-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="true"><div data-tocid="id-d3752e2022" class="topicref" data-id="id" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action id-d3752e2022-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/chapter-bringup.html" id="id-d3752e2022-link">BringUp</a><div class="wh-tooltip"><p class="shortdesc">主要描述板卡的各项配置,使 SDK 的环境和板卡匹配,并确保 SDK 编译后的固件能够在板子上正常运行。</p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e2039" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e2039-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-prepare.html" id="id-d3752e2039-link">准备工作</a></div></div></li><li role="treeitem"><div data-tocid="id-d3752e2097" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-soc.html" id="id-d3752e2097-link">引脚配置</a></div></div></li><li role="treeitem"><div data-tocid="id-d3752e2111" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-ram.html" id="id-d3752e2111-link">内存配置</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e2125" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e2125-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-storage.html" id="id-d3752e2125-link">存储配置</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e2233" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e2233-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/advanced/partition_config_2.html" id="id-d3752e2233-link">配置分区</a></div></div></li><li role="treeitem"><div data-tocid="id-d3752e2277" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-console.html" id="id-d3752e2277-link">调试配置</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e2291" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e2291-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-display.html" id="id-d3752e2291-link">屏幕配置</a></div></div></li><li role="treeitem" class="active"><div data-tocid="id-d3752e2403" class="topicref" data-id="id" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/bringup/lite-bringup-samples.html" id="id-d3752e2403-link">示例程序</a></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="id-d3752e2418" class="topicref" data-id="id" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action id-d3752e2418-link" class="wh-expand-btn"></span><div class="title"><a href="../../../topics/sdk/chapter-advanced-app.html" id="id-d3752e2418-link">高级应用</a><div class="wh-tooltip"><p class="shortdesc">系统、存储、多媒体、接口、安全等模块的详细配置和设计说明。</p></div></div></div></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://aicdocco/taskstopics/sdk/bringup/lite-bringup-samples.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">示例程序</h1>
<div class="date inPage">16 May 2025</div><div style="color: gray;">
Read time: 6 minute(s)
</div>
<div class="- topic/body body">
<section class="- topic/section section" id="id__section_zpj_5zb_bdc" data-ofbid="id__section_zpj_5zb_bdc"><h2 class="- topic/title title sectiontitle">LVGL Demo</h2>
<div class="- topic/p p" data-ofbid="d149925e33__20250519091521">如需运行 LVGL demo 可在 <span class="- topic/ph ph">Luban-Lite</span> 系统 RT-Thread 配置中执行 <span class="+ topic/keyword sw-d/cmdname keyword cmdname">me</span> 命令打开配置界面,具体步骤如下:<ol class="- topic/ol ol" data-ofbid="d149925e41__20250519091521">
<li class="- topic/li li" data-ofbid="d149925e43__20250519091521">
<div class="- topic/p p" data-ofbid="d149925e45__20250519091521">
进入 Application
options 配置<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_u42_r4s_z2c" data-ofbid="id__codeblock_u42_r4s_z2c">Application options ---&gt;</pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_nx5_r4s_z2c" data-ofbid="id__codeblock_nx5_r4s_z2c">*** Filesystem related *** [*] Using File System Image <span class="hl-number">0</span> ---&gt;
[*] Using File System Image <span class="hl-number">1</span> ---&gt;
(<span class="hl-number">8</span>) size of cluster in fatfs image
[ ] Generate burner format image
*** LVGL demo select related ***
-*- LVGL (official): powerful and easy-to-use embedded GUI library ---&gt;
[*] ArtInChip LVGL demo ---&gt;
(/rodata/lvgl_data) LVGL Resource Directory </pre></div>
</li>
<li class="- topic/li li" data-ofbid="d149925e60__20250519091521">
<p class="- topic/p p" data-ofbid="d149925e62__20250519091521"><span class="+ topic/ph ui-d/uicontrol ph uicontrol">LVGL (official)</span>
选项卡中,设置线程优先级、栈大小和显示刷新周期等参数,一般默认不需要设置。</p>
</li>
<li class="- topic/li li" data-ofbid="d149925e76__20250519091521">
<p class="- topic/p p" data-ofbid="d149925e78__20250519091521"><span class="+ topic/ph ui-d/uicontrol ph uicontrol">ArtInChip lvgl demo</span> 选项卡中,选择要使用的 demo
应用。</p>
</li>
<li class="- topic/li li" data-ofbid="d149925e89__20250519091521">
<p class="- topic/p p" data-ofbid="d149925e91__20250519091521">设置 <span class="+ topic/ph ui-d/uicontrol ph uicontrol">LVGL Resource Directory</span>
<span class="+ topic/ph sw-d/filepath ph filepath">(/rodata/lvgl_data)</span>,一般默认不需要设置。</p>
</li>
<li class="- topic/li li" data-ofbid="d149925e109__20250519091521">保存设置并退出配置界面。</li>
<li class="- topic/li li" data-ofbid="d149925e113__20250519091521">编译并烧录程序到开发板。<p class="- topic/p p" data-ofbid="d149925e115__20250519091521">完成操作后,即可运行所选的 <span class="+ topic/ph sw-d/filepath ph filepath">LVGL demo</span></p></li>
</ol></div>
<div class="- topic/p p" data-ofbid="d149925e122__20250519091521">配置代码示例如下:<div class="- topic/note note note note_note" data-ofbid="d149925e124__20250519091521"><span class="note__title">注:</span> 每个参数的含义详见<a class="- topic/xref xref" href="../lvgl/lvgl_introduction.html">LVGL 使用指南</a></div><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__pre_i2f_vzb_bdc" data-ofbid="id__pre_i2f_vzb_bdc">Application options ---&gt;
*** Filesystem related ***
[*] Using File System Image <span class="hl-number">0</span> ---&gt;
--- Using File System Image <span class="hl-number">0</span>
Select File System Type (FATFS) ---&gt;
(rodata/) Data Directory
(rodata.fatfs) Image Name
[*] <strong class="hl-keyword">auto</strong> calcuate image size
[*] using <strong class="hl-keyword">default</strong> volume label
[*] Using File System Image <span class="hl-number">1</span> ---- Select File System Type (LittleFS) ---&gt;
(data/) Data Directory
(data.lfs) Image Name
(<span class="hl-number">4096</span>) Erase block size
(<span class="hl-number">256</span>) Page size
(<span class="hl-number">8</span>) size of cluster in fatfs image
[*] FATFS enable write func in spinor
[ ] Generate burner format image
*** LVGL demo select related ***
-*- LVGL (official): powerful and easy-to-use embedded GUI library ---&gt;
--- LVGL (official): powerful and easy-to-use embedded GUI library
Select LVGL Version (LVGL V9) ---&gt;
(<span class="hl-number">20</span>) Priority of LVGL thread
(<span class="hl-number">32768</span>) Stack size of LVGL thread
(<span class="hl-number">5</span>) Display refresh period (ms)
[ ] Support SquareLine Studio
[ ] Enable built-in examples
[ ] Enable built-in demos
[*] ArtInChip LVGL demo ---&gt;
--- ArtInChip LVGL demo
select LVGL demo (LVGL demo of meter) ---&gt;
(<span class="hl-number">16</span>) LVGL color depth(<span class="hl-number">32</span>/<span class="hl-number">16</span>)
(<span class="hl-number">8</span>) LVGL image cached number
(<span class="hl-number">0x800000</span>) LVGL image cached size
(<span class="hl-number">20</span>) LVGL image header cached number
[ ] LVGL enable display rotation
[ ] Limit the output size of MPP JPEG decoder
[*] LVGL use custom config
[ ] LVGL use monkey touch test
(/rodata/lvgl_data) LVGL Resource Directory
</pre></div>
<p class="- topic/p p" data-ofbid="d149925e133__20250519091521">界面运行示例如下所示:</p>
<br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="id__image_aqz_vzb_bdc" src="../../../images/bringup/test-lvgl.png" width="576" alt="test-lvgl"/></div><br/>
</section>
<section class="- topic/section section" id="id__section_bhj_wzb_bdc" data-ofbid="id__section_bhj_wzb_bdc"><h2 class="- topic/title title sectiontitle">用户自定义 APP</h2>
<p class="- topic/p p" data-ofbid="d149925e148__20250519091521">本节演示添加一个名为 <span class="+ topic/ph sw-d/filepath ph filepath">test_demo</span> 的 LVGL 应用,详见中的<a class="- topic/xref xref" href="../lvgl/lvgl_introduction.html">LVGL 使用指南</a></p>
<ol class="- topic/ol ol" data-ofbid="d149925e158__20250519091521">
<li class="- topic/li li" data-ofbid="d149925e160__20250519091521"><strong class="+ topic/ph hi-d/b ph b">添加 APP 选项</strong><div class="- topic/p p" data-ofbid="d149925e163__20250519091521"><span class="+ topic/ph sw-d/filepath ph filepath">application/Kconfig</span>
中,添加下列代码:<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" data-ofbid="d149925e168__20250519091521">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></li>
<li class="- topic/li li" data-ofbid="d149925e171__20250519091521"><strong class="+ topic/ph hi-d/b ph b">配置 APP</strong><div class="- topic/p p" data-ofbid="d149925e174__20250519091521">使用 me 命令进入配置界面,在 Application options 中选择
AIC_LVGL_TEST_DEMO并保存配置。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" data-ofbid="d149925e176__20250519091521">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></li>
<li class="- topic/li li" data-ofbid="d149925e179__20250519091521"><strong class="+ topic/ph hi-d/b ph b">配置素材路径</strong><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" data-ofbid="d149925e182__20250519091521">Application options ---&gt;
[*] Using File System Image <span class="hl-number">0</span>
(rodata/) Data Directory
[*] Using File System Image <span class="hl-number">1</span>
(data/) Data Directory
</pre></li>
<li class="- topic/li li" data-ofbid="d149925e185__20250519091521"><strong class="+ topic/ph hi-d/b ph b">源码适配</strong><ol class="- topic/ol ol" type="a" data-ofbid="d149925e188__20250519091521">
<li class="- topic/li li" data-ofbid="d149925e190__20250519091521">
<div class="- topic/p p" data-ofbid="d149925e192__20250519091521">将源码解压缩至 <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_dss_pt5_hdc" data-ofbid="id__codeblock_dss_pt5_hdc">tree -h</pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_ohz_vwr_5dc" data-ofbid="id__codeblock_ohz_vwr_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="d149925e203__20250519091521">
<div class="- topic/p p" data-ofbid="d149925e205__20250519091521">根据实际项目路径,修改 test_demo 中的 SConscript
文件。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" data-ofbid="d149925e207__20250519091521">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>))
# 打包素材的路径
<strong class="hl-keyword">if</strong> GetDepend([<span class="hl-string">'LVGL_STORAGE_PATH'</span>]):
ins_dst = GetDepend(<span class="hl-string">'LVGL_STORAGE_PATH'</span>).strip(<span class="hl-string">'"/'</span>)
<strong class="hl-keyword">else</strong>:
ins_dst=<span class="hl-string">'rodata/lvgl_data'</span>
ins_src = <span class="hl-string">'assets/'</span>
install = [(ins_src, ins_dst)]
group = group + DefineGroup(<span class="hl-string">'LVGL-port'</span>, src, depend = [<span class="hl-string">'AIC_LVGL_METER_DEMO'</span>], CPPPATH = CPPPATH,
INSTALL = install)
Return(<span class="hl-string">'group'</span>)</pre></div>
</li>
<li class="- topic/li li" data-ofbid="d149925e211__20250519091521">
<p class="- topic/p p" data-ofbid="d149925e213__20250519091521">增加入口函数,<strong class="+ topic/ph hi-d/b ph b">接入 UI 功能</strong></p>
<p class="- topic/p p" data-ofbid="d149925e219__20250519091521"><span class="- topic/ph ph">Luban-Lite</span> SDK 中,已经融合了 LVGL-8.3.2,并与 AIC
芯片硬件接口、加速模块、触控等进行了对接,用户仅需接入 UI 部分的功能即可。</p>
<div class="- topic/p p" data-ofbid="d149925e224__20250519091521"><span class="+ topic/ph sw-d/filepath ph filepath">packages/artinchip/lvgl-ui/aic_ui.c</span>
中,添加以下代码:<div class="- topic/note note note note_note" id="id__note_xbr_st5_hdc" data-ofbid="id__note_xbr_st5_hdc"><span class="note__title">注:</span>
<p class="- topic/p p" data-ofbid="d149925e233__20250519091521">Bringup 时不建议调整,使用运行默认程序即可。</p>
</div><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" data-ofbid="d149925e237__20250519091521"><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>
</li>
</ol></li>
</ol>
</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__section_zpj_5zb_bdc" data-tocid="id__section_zpj_5zb_bdc">LVGL Demo</a></div></li><li class="section-item"><div class="section-title"><a href="#id__section_bhj_wzb_bdc" data-tocid="id__section_bhj_wzb_bdc">用户自定义 APP</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-2025 广东匠芯创科技有限公司. All rights reserved.</p>
</div>
<div>
<div class="generation_time">
Update Time: 2025-05-19
</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>