页次: 1
这种问题也是随机出现;
环境:从SPI NAND文件系统中加载了3个不同的矢量字库,其中出问题的字库都是包含有中文汉字(思源和阿里数黑)且文件在1MB和8MB左右
现象:通过lvgl的字库函数创建了不同大小字号font(创建了10组不同字号)引用,在渲染一个页面的时候在加载某些汉字时,freetype在读取字库文件时就会报错。
分析:我跟踪了错误点,很多错误都是读取字库文件数据是,seek偏移就报错。
解决方案:临时解决方案是增加重试可以解决此问题
结论:最终还是没有找到具体是什么原因,线程的stack已经开了很大,也观察了使用量,没有完全占用,系统的内存也还有充裕,不确定是否是文件系统有异常或者坏块导致
修改为使用LVGL 的内部MEM,可以避免系统的heap内存占用增加。
但是目前遇到一个另外一个问题,当多次显示汉字之后,Freetype会报读取字库。换了字库文件依然存在,错误信息如下:
kernel\rt-thread\components\dfs\filesystems\elmfat\dfs_elm.c dfs_elm_read rc:2
kernel\rt-thread\components\dfs\src\dfs_file.c dfs_file_read rc:-5 name:/lvgl_data/fonts/test.ttf
elm
FT_Stream_EnterFrame: invalid read; expected 120 bytes, got 0
[Error] (34.506, +33) freetype_glyph_create_cb: FT_Load_Glyph error(0x55) lv_freetype_glyph.c:138
[Error] (34.515, +9) freetype_get_glyph_dsc_cb: glyph lookup failed for unicode = 0x4f2f lv_freetype_glyph.c:104
kernel\rt-thread\components\dfs\filesystems\elmfat\dfs_elm.c dfs_elm_read rc:2
kernel\rt-thread\components\dfs\src\dfs_file.c dfs_file_read rc:-5 name:/lvgl_data/fonts/test.ttf
elm
FT_Stream_EnterFrame: invalid read; expected 84 bytes, got 0
[Error] (34.680, +165) freetype_image_create_cb: FT_Load_Glyph error(0x55) lv_freetype_image.c:130
[Error] (34.689, +9) lv_cache_entry_get_data: Asserted at expression: entry != NULL (NULL pointer) lv_cache_entry.c:94
CPU Exception: NO.5
x1: 4013e670 x2: 300762c0 x3: 401f0c78 x4: deadbeef
x5: 4005e2e4 x6: 0000a000 x7: 00018937 x8: 00000000
x9: 3007636c x10: ffffffff x11: 0000000a x12: 00000001
x13: 18710000 x14: 00000000 x15: 00000000 x16: 00000000
x17: 30076164 x18: 0000767d x19: 000000ca x20: 0000ffff
x21: 00000003 x22: 00000003 x23: 0000767d x24: 00000018
x25: 40215ba4 x26: 4023764c x27: 402376a4 x28: fffffffd
x29: 40058568 x30: 00000000 x31: 00000000
mcause : 0x38000005
mtval : 0x00000008
mepc : 0x401500f2
mstatus: 0x80007880
跟踪分析:
看报错信息,是打开FatFS的文件系统读取文件时 dfs_elm_read -> f_read 接口返回2 FR_INT_ERR
字库信息:
目前的字库都是8M以上存在SPI NAND中
我也尝试将LVGL的线程栈空间加到120KB,依然没有改善
这种是不是因为字库文件太大导致还是和内存相关? 麻烦大神帮忙分析下
使用D133CBV带屏的开发板,在其板子上基于lvgl_demo的工程开启了以太网功能,遇到点问题:
1、当断电之后上电,以太网可以正常使用;
2、当上电之后,插着网线无论硬件重启还是软件重启,都会出现原本可用的网络无法使用,具体现象是DHCP工程中 ethernetif.c 内的input函数一次都没有触发过,导致无法获取到IP,此时我们用示波器也测试了PHY的TXD引进没有数据,这种故障概率比较高
请问有遇到过这种问题吗?
附件是我们的工程配置
project.txt
页次: 1