1790|9

543

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【匠芯创D133CBS】--6.LVGL界面移植 [复制链接]

 
本帖最后由 dirty 于 2024-8-31 23:30 编辑

      本篇梳理讲述SDK LVGL框架功能,并移植自定义LVGL demo界面功能。

 

一.系统框架LVGL

      RTOS SDK已经移植了LVGL,其库如下图所示框架部分。

图1:LVGL库框架

      LVGL的入口为lvgl_thread_init,其被RT-Thread系统初始化导入。在任务lvgl_thread_entry里实现了LVGL显示触摸初始化:函数 lv_port_disp_init()中实现显示接口的对接以及硬件 2D 加速的对接;函数 lv_port_indev_init()中实现触摸屏的对接;函数 aic_dec_create()注册硬件解码器。lv_timer_handler(),lv_tick_get()给了LVGL一个心跳。lv_task_handler()处理LVGL任务。关于LVGL库,SDK是移植配套好了。用户LVGL应用在aic_ui_init里实现。

 

二.移植自定义LVGL

1.GUI-Guider工具界面配置如下,注意适配屏幕分辨率1024*600,色深16bit。这里用现成的模板稍作修改,使用Simulator仿真模式。

图2:GUI-Guider配置

2.稍作修改,生成C界面源码,操作如下

图3:生成界面源码

3.取需要使用源码如下,移入到SDK aci_demo路径下,这里放在自建app_user_ui下,如下图所示。  后面以模板化编写,后面界面更改变动基本只需将如下图所示部分替换即可。

图4:界面C源代码部分植入工程

4.创建app_user_ui.c/.h文件,编写用户统一界面代码接口函数如下

/*
packages/artinchip/lvgl-ui/aic_demo/app_user_ui/app_user_ui.c
*/

#include <unistd.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include "lvgl.h"
#include "aic_ui.h"
#include "lv_port_disp.h"
#include "mpp_fb.h"
#include "app_user_ui.h"

#include "gui_guider.h"

lv_ui guider_ui;

void app_user_ui_init()
{

    /* 用户APP 入口 */

    setup_ui(&guider_ui);

    events_init(&guider_ui);

    custom_init(&guider_ui);

}

5.在LVGL界面用户接口函数aic_ui_init添加如下自定义用户界面代码。这里铺展使用命令宏形式进行灵活选择配置。

图5:添加用户界面

6,脚本编写。这里涉及到第3步源码植入脚本路径及宏的加入,另一部分是可配置命令脚本。

(1)源码植入脚本SConscript 。这里可以从其他示例界面工程拷贝,然后修改依赖宏,如下图所示。然后将此SConscript脚本拷贝到app_user_ui文件夹下每个子文件夹下。

图6:修改脚本并在设计界面目录下拷贝

(2)在路径application/Kconfig文件里添加如下:

图7:修改添加工程命令配置脚本

7.使用scons --menuconfig命令到LVGL,可以看到自创的界面配置单,可以选择使用自定义界面,非常方面灵活。

图8:自定义界面配置

8.这时自定义界面代码基本植入完成,可以开始编译。这个会出现一些编译不过问题。一个是LVGL API函数不匹配报错,一般替换SDK LVGL的API即可。另一个是SRAM_S0溢出报错如下,这时配置到PSRAM即可。

图9:SRAM_S0溢出报错

      自此,用户自定义LVGL Demo界面移植基本完成。

 

三.测验

      编译烧录后,开机后界面如下,成功植入自定义LVGL demo界面,且后面也很方面根据需要局部替换生成代码即可。

      效果视频如下

LVGL自定义界面移植

 

最新回复

大佬,替换SDK LVGL的API具体是要怎么做   详情 回复 发表于 2025-2-11 10:01
点赞(2) 关注
个人签名

保持热爱

 
 

回复
举报

303

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

大佬您好,这个SRAM_S0溢出报错,这时配置到PSRAM即可,这里一般怎么配置呀?

点评

都选psram,配置命令里可以找到  详情 回复 发表于 2024-10-14 19:43
 
 
 

回复

543

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
yangjiaxu 发表于 2024-10-13 20:41 大佬您好,这个SRAM_S0溢出报错,这时配置到PSRAM即可,这里一般怎么配置呀?

都选psram,配置命令里可以找到

点评

你好,大佬,我昨晚试了一下在meconfig中没找到,能大致说说me配置,关于PSRAM路径吗?还是因为工程的不一样导致的?我用的是官方例程11.d13x demo88-nor rt-thread helloworld  详情 回复 发表于 2024-10-15 09:00
个人签名

保持热爱

 
 
 

回复

303

帖子

0

TA的资源

一粒金砂(高级)

4
 
dirty 发表于 2024-10-14 19:43 都选psram,配置命令里可以找到

你好,大佬,我昨晚试了一下在meconfig中没找到,能大致说说me配置,关于PSRAM路径吗?还是因为工程的不一样导致的?我用的是官方例程11.d13x demo88-nor rt-thread helloworld

点评

[attachimg]851780[/attachimg]    详情 回复 发表于 2024-10-15 11:42
 
 
 

回复

543

帖子

0

TA的资源

纯净的硅(初级)

5
 
yangjiaxu 发表于 2024-10-15 09:00 你好,大佬,我昨晚试了一下在meconfig中没找到,能大致说说me配置,关于PSRAM路径吗?还是因为工程的不 ...

 

点评

强,搞定了,感谢大佬,哈哈,解惑了  详情 回复 发表于 2024-10-15 11:55
个人签名

保持热爱

 
 
 

回复

303

帖子

0

TA的资源

一粒金砂(高级)

6
 

强,搞定了,感谢大佬,哈哈,解惑了

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
yangjiaxu 发表于 2024-10-15 11:55 强,搞定了,感谢大佬,哈哈,解惑了

多谢大佬!

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

8
 

  大佬,请问这个错误怎么解决

点评

这宏定义提示没定义,看下有没定义以及头文件包含  详情 回复 发表于 2025-2-20 10:31
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 

大佬,替换SDK LVGL的API具体是要怎么做

 
 
 

回复

543

帖子

0

TA的资源

纯净的硅(初级)

10
 
jjppo 发表于 2025-1-16 23:03   大佬,请问这个错误怎么解决

这宏定义提示没定义,看下有没定义以及头文件包含

个人签名

保持热爱

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表