求菜单程序编译代码过于庞大的解决之道。

2020-01-26 12:45发布

本帖最后由 ThinkCell 于 2013-11-9 18:09 编辑

设计了一款仪表,C语言程序编译后大约有50K以上。
程序为模块化设计,架构就是各个功能模块和菜单设置参数模块的组合。
不检查不知道,编译后发现菜单竟然占到总程序一半还多。
目前我还有几个功能没有做进去,如果程序突破58K,这个方案就要宣告失败了。

仪表显示为:5位数码管,两排显示。上面一排提示参数名称,下面一排显示参数值。
通过按【设置】切换参数,按【↑】【↓】【←】【→】修改程序值。

特此求助:求菜单程序编译代码过于庞大的解决之道。(无需代码,提供思路或方法即可)谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
zyw19987
1楼-- · 2020-01-26 16:05
你的菜单结构是怎么样的?链表?结构体数组?
woshiqinyikun
2楼-- · 2020-01-26 20:24
你的程序如果调用了其他人写的子函数库。或者你的工程中包含了别人写的文件。把没有用到的函数删除了,不要在工程文件中编译。这样会减少一点烧入单片机的代码量
zhangshixing
3楼-- · 2020-01-26 22:12
 精彩回答 2  元偷偷看……
wye11083
4楼-- · 2020-01-26 22:51
zhangshixing 发表于 2013-11-9 19:09
数码管的方案按说菜单占不了太多啊。楼主可以试试这个方案。。。

定义一个菜单的结构数据里面包含:

其实设计菜单的人才是真正的垃圾。典型的菜单可以用一个状态机轻松搞定,显示部分调用一个子函数,设定位置、内容,然后就等着输入了。之后根据状态机选择相应的操作。又不是MFC,一个菜单撑死几K。
AIHHLI
5楼-- · 2020-01-27 01:26
不会是if...else....if...else型的菜单吧.....
八成是菜单结构问题。
mmiker
6楼-- · 2020-01-27 03:27
需要这么大的空间吗? 楼主不会吧图片啥的转成数据放在里面了吧。这个可以放在FLASH,EEPROM等外存,需要的时候去读取加载。常用的比如箭头,图标这些小的,频繁使用的可以放在菜单程序中,总之应该分析下为什么这么大。 然后对症下药。

一周热门 更多>