flash溢出时如何瘦身程序?

选了一个MCU,产品开发一切顺利。在幕布结束的时候,突然发现Flash出现了溢出错误。这是一件很悲哀的事情,你无法更换芯片。我不想这么麻烦,老板也不想项目进度跟不上。除了精简程序,别无选择。错误[e104]:无法将所有段放入指定的范围。在段代码中发现问题。无法将84个块(总共0x3f68字节)放入0x3dee字节的内存中。处理段放置命令“-P(代码)CODE=C000-FFDF”时出现问题,在放置时可用的内存范围是“CODE:c 1 F2-ffdf”1,大量条件判断语句if(setoption sflag = = preset temp)/*是否进入预设温度设置模式*/{...} else if(setoption sflag = = preset tem 3 th)/*第三次定时加热的预设温度*/{...} else if (setoption sflag = =预设温度2th)/*第二次定时加热的预设温度*/ {...} else if (setoption sflag = =预设温度1次)/*首次加热预设温度*/{...} ...否则/*当不在设置模式时,温度控制模块显示*/{...}更换if...否则如果...带有swith()的else语句。程序切换到switch语句后占用4328字节。节省闪存空间168KB。当有许多分支可供选择时,最好使用switch语句。当然,如果你的闪光灯足够大,也没关系。当然,对程序进行瘦身最重要的是,在不影响程序执行效率的情况下,尽可能把一个可以写成子程序的模块写成一个单独的子程序,每当应用涉及到这个模块的时候就调用相关的子程序函数,这样可以很大程度上节省代码空间,尤其是在程序分支很多的时候。