OpenEdv-开源电子网

 找回密码
 立即注册
查看: 4051|回复: 15
打印 上一主题 下一主题

littleVGL历程移植中文字库历程

[复制链接]

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
跳转到指定楼层
楼主
发表于 2020-8-24 11:19:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
69金钱
小菜鸟想移植中文字库到littlevgl上,添加malloc文件后就报这个地址重叠错误,想请各路大神指点一下该怎么修改合适

阿里旺旺图片20200824111433.jpg (316.69 KB, 下载次数: 85)

阿里旺旺图片20200824111433.jpg

template.zip

19.68 MB, 下载次数: 62

最佳答案

查看完整内容[请看2#楼]

有字符限制,也不能传word文档,所以我简单的说明一下。 因为在malloc.c中已经把0x6800 0000的内存地址分配给它了,而在GUI的lv_port_disp.c的缓存定义也是从0x6800 0000的地址开始,所以就冲突了。你把GUI的缓存地址向后偏移,也就是前面留给malloc管理,后面就给GUI就可以了。 你要注意malloc.h的宏MEM2_MAX_SIZE的大小,它默认是960K,所以你要把它改小一点,把剩余的空间留给GUI,也就是要满足COLOR_BUF_SIZE的大小。 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
2#
发表于 2020-8-24 11:19:58 | 只看该作者

有字符限制,也不能传word文档,所以我简单的说明一下。

因为在malloc.c中已经把0x6800 0000的内存地址分配给它了,而在GUI的lv_port_disp.c的缓存定义也是从0x6800 0000的地址开始,所以就冲突了。你把GUI的缓存地址向后偏移,也就是前面留给malloc管理,后面就给GUI就可以了。

你要注意malloc.h的宏MEM2_MAX_SIZE的大小,它默认是960K,所以你要把它改小一点,把剩余的空间留给GUI,也就是要满足COLOR_BUF_SIZE的大小。

你修改一下lv_port_disp.c
static lv_color_t color_buf[COLOR_BUF_SIZE]        __attribute__((at(0X68000000+MEM2_MAX_SIZE+MEM2_ALLOC_TABLE_SIZE*2)));

注意
(1)要包含malloc.h文件(因为MEM2_ALLOC_TABLE_SZIE 和 MEM2_MAX_SIZE是这里的定义的)
(2)要把MEM2_ALLOC_TABLE_SIZE改小,至少要确保剩余的SRAM要比COLOR_BUF_SIZE大或等于。
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
3#
发表于 2020-8-24 12:30:47 | 只看该作者

回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
4#
 楼主| 发表于 2020-8-24 13:26:54 | 只看该作者
DFY 发表于 2020-8-24 11:19
有字符限制,也不能传word文档,所以我简单的说明一下。

因为在malloc.c中已经把0x6800 0000的内存地 ...

感谢大神帮忙,很详细马上就明白了,您说的改小MEM2_MAX_SIZE 要改到多小合适呢,COLOR_BUF_SIZE需要多大呢
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
5#
发表于 2020-8-24 14:34:58 | 只看该作者
kyuan 发表于 2020-8-24 13:26
感谢大神帮忙,很详细马上就明白了,您说的改小MEM2_MAX_SIZE 要改到多小合适呢,COLOR_BUF_SIZE需要多大 ...

假如你的屏幕大小是320*480,那么COLOR_BUF_SIZE可定义为320*480大小,剩下的给内存管理就可以了。

如果不是很懂的吧,可以看下正点原子的littleVGL“使用外部 sram 进行加速移植实验”
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
6#
 楼主| 发表于 2020-8-24 14:46:03 | 只看该作者
DFY 发表于 2020-8-24 14:34
假如你的屏幕大小是320*480,那么COLOR_BUF_SIZE可定义为320*480大小,剩下的给内存管理就可以了。

如 ...

好的,感谢
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
7#
 楼主| 发表于 2020-8-26 11:07:21 | 只看该作者
大佬,我对着最新 LVGL_V7.0及以上版本添加内、外部中文字体方法 这个帖子移植中文字库到外部flash上,但就是出不来字,会不会是内存分配问题呢?

template.zip

4.19 MB, 下载次数: 13

回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
8#
发表于 2020-8-26 11:33:53 | 只看该作者
本帖最后由 DFY 于 2020-8-26 11:36 编辑
kyuan 发表于 2020-8-26 11:07
大佬,我对着最新 LVGL_V7.0及以上版本添加内、外部中文字体方法 这个帖子移植中文字库到外部flash上,但就 ...


在fontupd.c中修改
//字库存放起始地址
#define FONTINFOADDR         1024*1024*12
这里12M给了文件系统,后面还剩下不到4M空间,空间不够了
改小一点,留点空间给littleVGL字库

例如改成这样
#define FONTINFOADDR         1024*1024*10
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
9#
 楼主| 发表于 2020-8-26 11:43:26 | 只看该作者
DFY 发表于 2020-8-26 11:33
在fontupd.c中修改
//字库存放起始地址
#define FONTINFOADDR         1024*1024*12

改了但是还是出不来字,这是为啥,大神您有移植中文字库过吗,可以发给我琢磨琢磨吗
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
10#
发表于 2020-8-26 11:45:03 | 只看该作者
本帖最后由 DFY 于 2020-8-26 11:47 编辑
kyuan 发表于 2020-8-26 11:43
改了但是还是出不来字,这是为啥,大神您有移植中文字库过吗,可以发给我琢磨琢磨吗

更新字库有显示完成吗?
文件编码是UTF-8吗?
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
11#
 楼主| 发表于 2020-8-26 11:47:34 | 只看该作者
DFY 发表于 2020-8-26 11:45
更新字库有显示完成吗?
文件编码是UTF-8吗?

显示完成了
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
12#
发表于 2020-8-26 11:51:22 | 只看该作者

你的标签改一下位置试试,先设置文本,再设置样式
原来:
        lv_label_set_style(label,LV_LABEL_STYLE_MAIN,&my_style);//设置样式
        lv_label_set_text(label,"A啊啊A");

改成:
        lv_label_set_text(label,"A啊啊A");
        lv_label_set_style(label,LV_LABEL_STYLE_MAIN,&my_style);//设置样式
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
13#
 楼主| 发表于 2020-8-26 11:56:18 | 只看该作者
DFY 发表于 2020-8-26 11:51
你的标签改一下位置试试,先设置文本,再设置样式
原来:
        lv_label_set_style(label,LV_LABEL_STYLE_M ...

还是不行,屏幕还是跟之前一样显示一条线

微信图片_20200826115509.jpg (3.7 MB, 下载次数: 84)

微信图片_20200826115509.jpg
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
14#
发表于 2020-8-26 11:58:28 | 只看该作者
kyuan 发表于 2020-8-26 11:56
还是不行,屏幕还是跟之前一样显示一条线

那可能是你的字库移植没做好
我给个例程你对着看看
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-7-27
在线时间
52 小时
15#
 楼主| 发表于 2020-8-26 12:07:58 | 只看该作者
DFY 发表于 2020-8-26 11:58
那可能是你的字库移植没做好
我给个例程你对着看看

好的,谢谢大神,您怎么发给我呢
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
16#
发表于 2020-8-26 12:12:29 | 只看该作者
kyuan 发表于 2020-8-26 12:07
好的,谢谢大神,您怎么发给我呢

加我QQ:2108907151文件上传不了,太大了
回复

使用道具 举报

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

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-20 17:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表