7736|25

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

高难度的问题,代码空间不够用 [复制链接]

我们的程序基于NXP的一款内置512KB FLASH ROM的CPU设计,现在发现程序空间不够修改BUG和增加新功能使用。
在代码优化和结构调整上已做过文章,能省出来的非常有限。
我们的程序里有8国语言,现全部放在FLASH里,不想放在外部EEPROM中处理起来太过麻烦。
由于产品已经上市不好再更改主板的设计,采用外扩FLASH ROM的方式。
大家帮我想下有什么好的解决方案没有,另外想探讨下怎样压缩语言存储,谢谢啦

最新回复

不懂帮顶了 : )  详情 回复 发表于 2009-12-27 03:37
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
8国语言,现全部放在FLASH里,使用zlib压缩吧。
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个不懂帮顶了
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
建立自己的精简字库,主要是汉字库占资源多吧,其他拉丁语系字库应该差不多
应用程序界面需要的字,就从字库精简出来,就行啊
你用压缩的话,还得解压缩,还要需要移植解压缩相关代码,还是增加代码量,一样耗资源
我UCOSII中GUI开发中就是用自己的精简字库。
http://download.eeworld.net/source/1556425
这里有我写的字库提取的工具,有原代码 ,不过只是取中文字库
可参照
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 churenxh 的回复:
建立自己的精简字库,主要是汉字库占资源多吧,其他拉丁语系字库应该差不多
应用程序界面需要的字,就从字库精简出来,就行啊
你用压缩的话,还得解压缩,还要需要移植解压缩相关代码,还是增加代码量,一样耗资源
我UCOSII中GUI开发中就是用自己的精简字库。
http://download.eeworld.net/source/1556425
这里有我写的字库提取的工具,有原代码 ,不过只是取中文字库
可参照

谢谢了,我们没用到中文,都是西欧和东欧语言
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 schlafenhamster 的回复:
8国语言,现全部放在FLASH里,使用zlib压缩吧。

对zlib不太熟,能否给个在嵌入式环境下压缩和解压缩的例子或链接?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
扩展RAM或SD卡来使用呀,压缩毕竟会降低速度
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 1 楼 schlafenhamster 的回复:
8国语言,现全部放在FLASH里,使用zlib压缩吧。

谢谢了,对zlib不太熟悉,能否给一个在嵌入式下使用的例子或链接呢?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 supermanking 的回复:
扩展RAM或SD卡来使用呀,压缩毕竟会降低速度

暂时不想更改硬件设计,比较费时费力
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
都512了,还要扩

是不是该换处理器了?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
8国语言改为4国语言,再向特定客户发特定的版本……一般人他只会用一种语言。
或者提供一个供客户修改语言的接口,让客户自己改写语言库
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 
楼上很经典!
引用 11 楼 lin0119 的回复:
8国语言改为4国语言,再向特定客户发特定的版本……一般人他只会用一种语言。
或者提供一个供客户修改语言的接口,让客户自己改写语言库
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

14
 
mark
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

15
 
8国语言,哈哈.中国的最精简的GB2312小五都300K了,在加其他国家的,你一句代码都放不下.

接片外flash,弄个几MB的,80过国文字都应该没问题了.

 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

16
 
精简字库吧
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

17
 
1。最无奈的做法;用汇编代替C
2。最困难的做法:
   2.1检查C代码中的变量定义,少用全局变量。
    2.2检查公共代码,尽可能用函数取代。
    2.3多用指针,少用变量。
    2.4精简搜索算法时间换空间。
    2.5精简查找算法时间换空间。
 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 1 楼 schlafenhamster 的回复:
8国语言,现全部放在FLASH里,使用zlib压缩吧。


压缩吧!!

也可以编译 8份 去那个国家烧那个版本  缺省为 英语   
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

19
 
1.找找有没有相同封装的同类flash空间比较大的代替?
2.建议把字库中用不到的字删除。留一些常用字就好,不用吧整个字库都放进去。能精简不少。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

20
 
欧洲的语言,像英文只有26个字母,大小写也只有52个...似乎不多呀?
 
 
 

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

随便看看
查找数据手册?

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-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表