OpenEdv-开源电子网

 找回密码
 立即注册
查看: 3591|回复: 15

littleVGL历程移植中文字库历程

[复制链接]

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2018-7-27
在线时间
52 小时
发表于 2020-8-24 11:19:57 | 显示全部楼层 |阅读模式
69金钱
小菜鸟想移植中文字库到littlevgl上,添加malloc文件后就报这个地址重叠错误,想请各路大神指点一下该怎么修改合适
阿里旺旺图片20200824111433.jpg

template.zip

19.68 MB, 下载次数: 59

最佳答案

查看完整内容[请看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 小时
发表于 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 小时
发表于 2020-8-24 12:30:47 | 显示全部楼层
偏移量.png
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2018-7-27
在线时间
52 小时
 楼主| 发表于 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 小时
发表于 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

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

如 ...

好的,感谢
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2018-7-27
在线时间
52 小时
 楼主| 发表于 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 小时
发表于 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

积分
75
金钱
75
注册时间
2018-7-27
在线时间
52 小时
 楼主| 发表于 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 小时
发表于 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

积分
75
金钱
75
注册时间
2018-7-27
在线时间
52 小时
 楼主| 发表于 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 小时
发表于 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

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

还是不行,屏幕还是跟之前一样显示一条线
微信图片_20200826115509.jpg
回复

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

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

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

使用道具 举报

11

主题

314

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1039
金钱
1039
注册时间
2020-7-21
在线时间
258 小时
发表于 2020-8-26 12:12:29 | 显示全部楼层
kyuan 发表于 2020-8-26 12:07
好的,谢谢大神,您怎么发给我呢

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

使用道具 举报

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

本版积分规则

关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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