您尚未登录。

楼主 # 2022-03-09 17:02:21

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

如题,用了LVGL的gif库来显示动图,图片大小2.13M,转换成C文件之后13.6M,效果不太好,显示得很缓慢,是哪里没优化好吗,还是说软件解码效果就是这样的?有什么其它的图形库显示gif图片流畅的吗,请大佬们指点一二

最近编辑记录 岁月快快快 (2022-03-09 17:19:57)

离线

楼主 #1 2022-03-09 17:04:33

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

test.gif
这是原图

离线

#2 2022-03-09 18:20:14

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 461
积分: 328.5
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

要不用硬件jpg?

离线

#3 2022-03-09 19:00:41

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

aozima 说:

要不用硬件jpg?

感觉是,没有在指定时间内完成图片解码导致帧率降低?

离线

楼主 #4 2022-03-10 11:48:22

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

aozima 说:

要不用硬件jpg?

硬件jpg解码是视频解码吧,直接用播放视频的形式来做感觉不好做成一个控件啊,图片控件可以直接调用lvgl的接口来显示和隐藏

离线

#5 2022-03-10 12:26:22

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

把那个帧率fps显示打开,看下现在是什么帧率?

离线

楼主 #6 2022-03-10 15:11:33

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

cube 说:

把那个帧率fps显示打开,看下现在是什么帧率?

fps显示是30-32  cpu占用率百分之九十多,整个gif做的是6秒钟,板子上显示12秒才显示完  翻了一倍.....

最近编辑记录 岁月快快快 (2022-03-10 15:53:33)

离线

#7 2022-03-11 10:54:34

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

LVGL没有缓存图像的位图?我没怎么用过LVGL不太清楚,但楼主可以尝试用AWTK,据我所知,AWTK在显示图像前会将其转换成位图并缓存在内存中,这样显示应该会流畅点。
AWTK中有直接的gif控件,也有mutable_image控件通过手动填充位图图像帧来实现动态图像从而方便性能优化。

https://gitee.com/zlgopen/awtk/blob/master/docs/manual/gif_image_t.md
https://gitee.com/zlgopen/awtk/blob/master/docs/how_to_use_mutable_image.md

最近编辑记录 海石生风 (2022-03-11 11:04:49)

离线

楼主 #8 2022-03-11 19:25:53

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

@海石生风
lvgl有缓存图片的功能,我打开了感觉也没有什么用,准备试一下移植AWTK看看效果如何

离线

#9 2022-03-12 10:13:11

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

岁月快快快 说:

@海石生风
lvgl有缓存图片的功能,我打开了感觉也没有什么用,准备试一下移植AWTK看看效果如何

你这GIF太大了,建议用mutable_image来实现,也可以尝试用动画来实现。
AWTK支持RiveLottie动画:
https://github.com/zlgopen/awtk-widget-rive
https://github.com/zlgopen/awtk-widget-rlottie

离线

楼主 #10 2022-03-15 23:38:21

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

@海石生风
多谢指点,现在正在移植AWTK到linux上,按照官方的教程编译demo,一直报错:
TypeError: File /home/robert/myProject/aboutLinux/linuxFile/SweepFLoorMachineUseLinux/awtkApp/awtk-linux-fb/bin found where directory expected.:
File "/home/robert/myProject/aboutLinux/linuxFile/SweepFLoorMachineUseLinux/awtkApp/awtk-linux-fb/SConstruct", line 77:
SConscript(SConscriptFiles)
File "/usr/local/lib/python3.7/dist-packages/SCons/Script/SConscript.py", line 660:
return method(*args, **kw)
File "/usr/local/lib/python3.7/dist-packages/SCons/Script/SConscript.py", line 597:
return _SConscript(self.fs, *files, **subst_kw)
File "/usr/local/lib/python3.7/dist-packages/SCons/Script/SConscript.py", line 285:
exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
File "/home/robert/myProject/aboutLinux/linuxFile/SweepFLoorMachineUseLinux/awtkApp/awtk-linux-fb/build/var/awtk/src/SConscript", line 100:
LIBS=TKC_DEPS_LIBS, LINKFLAGS=TKC_LINKFLAGS)
File "/usr/local/lib/python3.7/dist-packages/SCons/Environment.py", line 238:
return super().call(target, source, *args, **kw)
File "/usr/local/lib/python3.7/dist-packages/SCons/Util.py", line 742:
return self.method(*nargs, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/SCons/Builder.py", line 662:
return self._execute(env, target, source, OverrideWarner(kw), ekw)
File "/usr/local/lib/python3.7/dist-packages/SCons/Builder.py", line 568:
tlist, slist = self._create_nodes(env, target, source)
File "/usr/local/lib/python3.7/dist-packages/SCons/Builder.py", line 513:
tlist = env.arg2nodes(target, target_factory, target=target, source=source)
File "/usr/local/lib/python3.7/dist-packages/SCons/Environment.py", line 468:
v = node_factory(self.subst(v, **kw))
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 1435:
return self._lookup(name, directory, File, create)
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 1414:
return root._lookup_abs(p, fsclass, create)
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 2434:
dir_node = self._lookup_abs(dir_name, Dir)
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 2439:
result.diskcheck_match()
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 1646:
"File %s found where directory expected.")
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 389:
return self.func(*args, **kw)
File "/usr/local/lib/python3.7/dist-packages/SCons/Node/FS.py", line 410:
raise TypeError(errorfmt % node.get_abspath())

按照 https://github.com/zlgopen/awtk-linux-fb/issues/49#
去修改,也是报一样的错误

有遇到过这样的错误吗

最近编辑记录 岁月快快快 (2022-03-16 00:06:08)

离线

#11 2022-03-17 08:10:55

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

@岁月快快快
没遇到过种问题,你的awtk-linux-fb/awtk_config.py配置文件是怎么改的?帖下git diff输出看下。
建议尝试用apt或者从源码重新安装scons。

离线

楼主 #12 2022-03-17 13:06:07

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

diff --git a/awtk_config.py b/awtk_config.py
index b789e90..e43b4ef 100644
--- a/awtk_config.py
+++ b/awtk_config.py
@@ -103,15 +103,18 @@ OS_FLAGS='-Wall -Os -fno-strict-aliasing '
 #TSLIB_LIB_DIR=joinPath(TK_LINUX_FB_ROOT, '3rd/tslib/src/.libs')
 
 #for prebuild tslib
-TSLIB_LIB_DIR='/opt/28x/tslib/lib'
-TSLIB_INC_DIR='/opt/28x/tslib/include'
-TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'
+#TSLIB_LIB_DIR='/opt/28x/tslib/lib'
+#TSLIB_INC_DIR='/opt/28x/tslib/include'
+#TOOLS_PREFIX='/opt/28x/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-linux-'
+TSLIB_LIB_DIR=''
+TSLIB_INC_DIR=''
+TOOLS_PREFIX='/usr/local/arm-linux-gcc/bin/arm-linux-gnueabi'
 
 #TOOLS_PREFIX='/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-'
 
 #for qemu
-TOOLS_PREFIX='/opt/qemu/buildroot-2021.02.2/output/host/bin/arm-linux-'
-TSLIB_LIB_DIR=''
+#TOOLS_PREFIX='/opt/qemu/buildroot-2021.02.2/output/host/bin/arm-linux-'
+#TSLIB_LIB_DIR=''
 
 #TSLIB_LIB_DIR=''

按照官方的教程来移植的,apt安装和pip安装scons都试过了,都是报这个错误;https://github.com/zlgopen/awtk-linux-fb/issues/49#  github上面有人说是linux环境的问题,我之前的环境是ubuntu16.04.6,重新装了个deepin20.4,也是报一样的错误

最近编辑记录 岁月快快快 (2022-03-17 13:06:57)

离线

楼主 #13 2022-03-17 13:46:40

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

海石生风 说:

@岁月快快快
没遇到过种问题,你的awtk-linux-fb/awtk_config.py配置文件是怎么改的?帖下git diff输出看下。
建议尝试用apt或者从源码重新安装scons。

从源码安装也试了,报一样的错误
sad

离线

#14 2022-03-17 23:53:29

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

TOOLS_PREFIX='/usr/local/arm-linux-gcc/bin/arm-linux-gnueabi'

末尾少了扛,应该是这样:

TOOLS_PREFIX='/usr/local/arm-linux-gcc/bin/arm-linux-gnueabi-'

但可能不是这里导致的错误。你这个是连配置文件都没读完就报错了,可以看看没修改配置前编译的输出(git reset --hard && scons)。
也有可能是文件编码或文件的BOM标记不正常引起。

一般来说不太可能是python或scons在不同linux发行版上有一致性差异,应该是项目文件中哪里出了问题。
建议尝试先编译无修改的awtk再编译无修改的awtk-linux-fb确保配置文件没有问题。

最近编辑记录 海石生风 (2022-03-18 07:00:03)

离线

楼主 #15 2022-03-18 23:38:03

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

把awtk-linux-fb文件夹下"bin"这个文件删掉就可以编译了,这个文件好像是编译一次之后不管通不通过都会生成,然后如果有这文件的时候再去编译就会报上面的错误,应该是把bin这个文件识别成SConstruct文件,然后就报错了,太坑了!

最近编辑记录 岁月快快快 (2022-03-18 23:48:55)

离线

#16 2022-03-19 07:45:30

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

@岁月快快快
AWTK的构造系统在编译前即读取配置文件时会先在编译目录里创建bin文件夹,如果你在这个目录里有个bin文件,那自然创建bin文件夹就失败了,从导致读取配置文件失败。

离线

楼主 #17 2022-03-19 13:14:27

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

海石生风 说:

@岁月快快快
AWTK的构造系统在编译前即读取配置文件时会先在编译目录里创建bin文件夹,如果你在这个目录里有个bin文件,那自然创建bin文件夹就失败了,从导致读取配置文件失败。

这个文件不是我创建的,是编译以后自动生成的,也就是我第一次编译因为其它的原因出错了,然后也生成了这个文件,然后再去编译就会一直报错,直接删掉,或者执行scons -c(类似于make clean的操作), 就通过了

离线

#18 2022-03-19 14:51:37

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

那估计是你的文件系统有问题

离线

楼主 #19 2022-03-20 15:33:27

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

海石生风 说:

那估计是你的文件系统有问题

麻烦不断,又有新问题了,用编译buildroot的工具链来编译awtk-linux-fb报错:

-I/home/robert/myProject/aboutLinux/linuxFile/SweepFLoorMachineUseLinux/awtkApp/awtk/res build/var/awtk/src/charset/encoding.c
build/var/awtk/src/charset/encoding.c:30:10: fatal error: iconv.h: No such file or directory
 #include <iconv.h>
          ^~~~~~~~~
compilation terminated.
scons: *** [build/var/awtk/src/charset/encoding.o] Error 1
scons: building terminated because of errors.

可能是buildroot工具链不支持iconv库?或者是我没配置好?
配置如下:
1.png
.png
buildroot试了buildroot-2018.02.2和buildroot-2018.08.2,都有一样的问题
用同样的buildroot工具链去编译lvgl又是没有问题的,可以编译通过,编译出来的demo可以在板子上运行;
用编译内核的工具链gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz去编译awtk-linux-fb又是可以通过的,没有报缺少iconv.h;
但是用编译内核的工具链编出来的应用程序在板子上执行不了,应该是和编译根文件系统用的glibc的版本不一样导致,所以只能用buildroot的工具链来编译;
strings buildroot-2018.02.2/output/host/bin/arm-linux-gcc | grep -i glibc
GLIBC_2.14
GLIBC_2.3
GLIBC_2.2.5

用编译内核的工具链编译出来的应用程序执行报错信息:

[root@buildroot: /opt/release/bin]$./demo &
[1]-  Done(127)                  ./demo
[root@buildroot: /opt/release/bin]$-sh: ./demo: not found
^C
[root@buildroot: /opt/release/bin]$strings libawtk.so  | grep -i glibc
GLIBC_2.4
GLIBCXX_3.4
GLIBC_2.7
signal@@GLIBC_2.4
atan@@GLIBC_2.4
pthread_cond_init@@GLIBC_2.4
chdir@@GLIBC_2.4
stdin@@GLIBC_2.4
sem_destroy@@GLIBC_2.4
_Znwj@@GLIBCXX_3.4
pthread_mutex_lock@@GLIBC_2.4
wcslen@@GLIBC_2.4
pthread_mutex_init@@GLIBC_2.4
fsync@@GLIBC_2.4
rand@@GLIBC_2.4
sqrt@@GLIBC_2.4
ftruncate@@GLIBC_2.4
iswspace@@GLIBC_2.4
popen@@GLIBC_2.4
log@@GLIBC_2.4
dlerror@@GLIBC_2.4
gettimeofday@@GLIBC_2.4
recvfrom@@GLIBC_2.4
pthread_cond_destroy@@GLIBC_2.4
socketpair@@GLIBC_2.4
getsockopt@@GLIBC_2.4
strcasecmp@@GLIBC_2.4
ftello@@GLIBC_2.4
utime@@GLIBC_2.4
freeaddrinfo@@GLIBC_2.4
strtol@@GLIBC_2.4
free@@GLIBC_2.4
atan2f@@GLIBC_2.4
readdir@@GLIBC_2.4
getaddrinfo@@GLIBC_2.4
fseek@@GLIBC_2.4
atanf@@GLIBC_2.4
tanf@@GLIBC_2.4
qsort@@GLIBC_2.4
strncmp@@GLIBC_2.4
pthread_join@@GLIBC_2.4
ceilf@@GLIBC_2.4
closedir@@GLIBC_2.4
printf@@GLIBC_2.4
cosf@@GLIBC_2.4
pthread_cond_timedwait@@GLIBC_2.4
dlclose@@GLIBC_2.4
feof@@GLIBC_2.4
puts@@GLIBC_2.4
pthread_cond_signal@@GLIBC_2.4
perror@@GLIBC_2.4
asin@@GLIBC_2.4
strtoll@@GLIBC_2.4
getpwuid@@GLIBC_2.4
sendto@@GLIBC_2.4
readlink@@GLIBC_2.4
cos@@GLIBC_2.4
lround@@GLIBC_2.4
exp@@GLIBC_2.4
putchar@@GLIBC_2.4
memset@@GLIBC_2.4
pthread_self@@GLIBC_2.4
opendir@@GLIBC_2.4
acosf@@GLIBC_2.4
srandom@@GLIBC_2.4
recv@@GLIBC_2.4
remove@@GLIBC_2.4
fcntl@@GLIBC_2.4
wcschr@@GLIBC_2.4
listen@@GLIBC_2.4
snprintf@@GLIBC_2.4
ldexp@@GLIBC_2.4
pthread_mutex_trylock@@GLIBC_2.4
close@@GLIBC_2.4
pthread_cond_broadcast@@GLIBC_2.4
fopen@@GLIBC_2.4
_Znaj@@GLIBCXX_3.4
read@@GLIBC_2.4
bsearch@@GLIBC_2.4
pow@@GLIBC_2.4
vfprintf@@GLIBC_2.4
sinf@@GLIBC_2.4
__ctype_toupper_loc@@GLIBC_2.4
memmove@@GLIBC_2.4
freopen@@GLIBC_2.4
rmdir@@GLIBC_2.4
unlink@@GLIBC_2.4
gethostbyname@@GLIBC_2.4
dlopen@@GLIBC_2.4
ioctl@@GLIBC_2.4
tcflush@@GLIBC_2.4
cfsetspeed@@GLIBC_2.4
localtime@@GLIBC_2.4
gmtime_r@@GLIBC_2.4
system@@GLIBC_2.4
realloc@@GLIBC_2.4
strcpy@@GLIBC_2.4
mmap@@GLIBC_2.4
wcsncpy@@GLIBC_2.4
wcscmp@@GLIBC_2.4
_ZdlPv@@GLIBCXX_3.4
__assert_fail@@GLIBC_2.4
ceil@@GLIBC_2.4
open@@GLIBC_2.4
sincosf@@GLIBC_2.4
bind@@GLIBC_2.4
pthread_mutex_destroy@@GLIBC_2.4
tcsetattr@@GLIBC_2.4
fread@@GLIBC_2.4
fileno@@GLIBC_2.4
socket@@GLIBC_2.4
access@@GLIBC_2.4
mkdir@@GLIBC_2.4
atan2@@GLIBC_2.4
__cxa_atexit@@GLIBC_2.4
strstr@@GLIBC_2.4
sqrtf@@GLIBC_2.4
sem_init@@GLIBC_2.4
sem_timedwait@@GLIBC_2.4
__register_atfork@@GLIBC_2.4
pclose@@GLIBC_2.4
_ZdaPv@@GLIBCXX_3.4
__isoc99_vsscanf@@GLIBC_2.7
setsockopt@@GLIBC_2.4
select@@GLIBC_2.4
shutdown@@GLIBC_2.4
sleep@@GLIBC_2.4
raise@@GLIBC_2.4
__ctype_b_loc@@GLIBC_2.4
pthread_cond_wait@@GLIBC_2.4
getuid@@GLIBC_2.4
strtoull@@GLIBC_2.4
connect@@GLIBC_2.4
rewinddir@@GLIBC_2.4
calloc@@GLIBC_2.4
ftell@@GLIBC_2.4
ferror@@GLIBC_2.4
iconv_close@@GLIBC_2.4
fgets@@GLIBC_2.4
__fxstat@@GLIBC_2.4
sem_post@@GLIBC_2.4
fwrite@@GLIBC_2.4
sincos@@GLIBC_2.4
memcpy@@GLIBC_2.4
tan@@GLIBC_2.4
malloc@@GLIBC_2.4
strlen@@GLIBC_2.4
getcwd@@GLIBC_2.4
munmap@@GLIBC_2.4
accept@@GLIBC_2.4
usleep@@GLIBC_2.4
fclose@@GLIBC_2.4
write@@GLIBC_2.4
atof@@GLIBC_2.4
fseeko@@GLIBC_2.4
floorf@@GLIBC_2.4
fmodf@@GLIBC_2.4
__xstat@@GLIBC_2.4
stdout@@GLIBC_2.4
random@@GLIBC_2.4
iconv_open@@GLIBC_2.4
pthread_create@@GLIBC_2.4
strcmp@@GLIBC_2.4
time@@GLIBC_2.4
iconv@@GLIBC_2.4
tcgetattr@@GLIBC_2.4
__errno_location@@GLIBC_2.4
send@@GLIBC_2.4
tolower@@GLIBC_2.4
__sysv_signal@@GLIBC_2.4
strncpy@@GLIBC_2.4
fflush@@GLIBC_2.4
memcmp@@GLIBC_2.4
strrchr@@GLIBC_2.4
wcscpy@@GLIBC_2.4
__ctype_tolower_loc@@GLIBC_2.4
alarm@@GLIBC_2.4
getsockname@@GLIBC_2.4
mktime@@GLIBC_2.4
sin@@GLIBC_2.4
fputs@@GLIBC_2.4
getenv@@GLIBC_2.4
clock_gettime@@GLIBC_2.4
dlsym@@GLIBC_2.4
rename@@GLIBC_2.4
acos@@GLIBC_2.4
sem_wait@@GLIBC_2.4
strchr@@GLIBC_2.4
__cxa_finalize@@GLIBC_2.4
pthread_mutex_unlock@@GLIBC_2.4
settimeofday@@GLIBC_2.4
vsnprintf@@GLIBC_2.4
floor@@GLIBC_2.4
[2]+  Done(127)                  ./demo
[root@buildroot: /opt/release/bin]$[  181.351505] random: crng init done

[root@buildroot: /opt/release/bin]$ldd demo
checking sub-depends for '/usr/lib/libstdc++.so.6'
checking sub-depends for 'not found'
checking sub-depends for 'not found'
checking sub-depends for 'not found'
checking sub-depends for 'not found'
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for 'not found'
checking sub-depends for '/lib/libc.so.0'
        ld-uClibc.so.1 => /lib/ld-uClibc.so.1 (0xb6f6a000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00000000)
        libpthread.so.0 => not found (0x00000000)
        librt.so.1 => not found (0x00000000)
        libm.so.6 => not found (0x00000000)
        libdl.so.2 => not found (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.6 => not found (0x00000000)
        libc.so.0 => /lib/libc.so.0 (0x00000000)
        /lib/ld-uClibc.so.1 => /lib/ld-uClibc.so.1 (0x00000000)
        /lib/ld-uClibc.so.1 => /lib/ld-uClibc.so.1 (0x00000000)

@海石生风
大佬,你是用的什么版本的工具链来编译awtk的呢

最近编辑记录 岁月快快快 (2022-03-20 20:34:57)

离线

#20 2022-03-20 22:46:21

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

我的工具链所带的glibc的iconv也是有问题的,估计这东西普遍不好用,而AWTK默认在linux平台使用iconv。好在AWTK有内置的实现字符编码转换的源码而不需要用iconv。
而修改为使用AWTK内置的替换iconv的源码的改法见我提的issue: https://github.com/zlgopen/awtk/issues/676#issuecomment-1057804433

diff --git a/src/charset/encoding.c b/src/charset/encoding.c
index 5ed79fdf7..884d52e7e 100644
--- a/src/charset/encoding.c
+++ b/src/charset/encoding.c
@@ -21,6 +21,8 @@
 
 #include "encoding.h"
 
+#undef LINUX
+
 #ifdef WIN32
 #include "win_iconv.inc"
 #define WITH_ICONV 1

另外,如果你不需要utf-8转GBK功能的话,可以改下编译配置以不编译awtk/src/charset/相关源文件(utf-8和GBK之间的转换没有规律,会包含一个很大的数组)。

最近编辑记录 海石生风 (2022-03-20 23:13:19)

离线

楼主 #21 2022-03-21 16:09:49

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

@海石生风
感谢大佬,example里面的demo已经可以成功编译运行了,但是如果编译我自己在界面设计器里面打包出来的demo,在板子上还是运行不了;
报错无法加载libawtk.so库:

# ./demo
/opt/releaseGif/bin/demo: can't load library 'libawtk.so'

# strings ./libawtk.so  | grep -i glibc
GLIBCXX_3.4
_Znwj@@GLIBCXX_3.4
_Znaj@@GLIBCXX_3.4
_ZdaPv@@GLIBCXX_3.4

对比了example里面编译出来的libawtk.so的glibc库版本又是一样的;
可能是linux下面的界面设计器的问题?
安装的是AWStudio-Community-amd64-1.0.21.deb这个版本

最近编辑记录 岁月快快快 (2022-03-21 16:13:58)

离线

#22 2022-03-21 19:07:22

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 648
积分: 781
个人网站

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

我没有用设计器,我之前看过那时发布的linux版的设计器的一些细节:设计器启动后会下载awtk源码到/usr目录并编译,这种做法有违linux目录管理原则所以没敢用,不知现在如何了。
所以我都是手写的界面描述文件,另外因为用了MVVM框架,UI跟逻辑的绑定就在界面描述文件里,所以必需手动编写。

离线

楼主 #23 2022-03-22 20:57:13

岁月快快快
会员
注册时间: 2021-12-25
已发帖子: 61
积分: 72

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

linux下面好像还是beta版本,看来只能手写或者在windows下弄了

离线

#24 2022-07-08 14:32:53

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 307
积分: 350

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

播放动画可以试试开源动画库lottie lvgl就支持  这是失量的 体积小 效果棒

离线

#25 2022-07-08 16:27:16

sunxiang
会员
注册时间: 2021-05-05
已发帖子: 222
积分: 121

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

不知道直接用Qt5显示动图会不会好一点,还是说受制于处理器的性能

离线

#26 2023-09-17 14:50:05

isaac.liu
会员
注册时间: 2023-09-17
已发帖子: 1
积分: 1

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

我遇到了同样的问题,GIF有2.8MByte,播放的时候CPU占用率97%,6秒的GIF卡到10多秒才能播完。
最终排查出是文件系统缓存和编译优化的问题。
1.设置文件系统缓存,在lv_conf.h中

/*API for fopen, fread, etc*/
#define LV_USE_FS_STDIO 1
#if LV_USE_FS_STDIO
    #define LV_FS_STDIO_LETTER 'A'     /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/
    #define LV_FS_STDIO_PATH ""         /*Set the working directory. File/directory paths will be appended to it.*/
    #define LV_FS_STDIO_CACHE_SIZE 1024    /*>0 to cache this number of bytes in lv_fs_read()*/
#endif

2.设置编译方式为Release,而非CMake脚本默认的Debug

set(CMAKE_BUILD_TYPE Release)

经过上面设置之后,可以正常显示gif,CPU占用率仍在90%

离线

#27 2023-09-18 18:11:25

jianbi
会员
注册时间: 2019-09-06
已发帖子: 10
积分: 0

Re: F1C100s跑rtt+lvgl显示gif图片效果卡顿求助

感觉还有优化的空间

最近编辑记录 jianbi (2023-09-18 18:11:35)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn