11123|10

7

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

解决STM8代码空间不足的几个办法 [复制链接]

 
开发环境用的是IAR
1. 提高优化级别  工程选项-》C/C++ compiler->optimizations
2. 如果使用了ST的驱动库,找到USE_FULL_ASSERT,屏蔽掉,大约节省1.5K的代码空间
3.简化代码,这个只能对着代码一段一段去抠了,有点痛苦,不得已而为之

QQ图片20160922144020.png (35.22 KB, 下载次数: 0)

QQ图片20160922144020.png
此帖出自stm32/stm8论坛

最新回复

期间还怀疑硬件的问题,各种接线,各种电阻,换换换。。。。。。,结果不是硬件的问题!要我说,选这种容量和性能刚刚满足自己需求的单片机,纯粹是为难自己!!余量很重要啊。  详情 回复 发表于 2016-12-11 22:30
点赞(1) 关注(1)
 

回复
举报

2774

帖子

8

TA的资源

版主

沙发
 
这个……仿佛是两码事呀!提高优化级别应该在后期干的事,否则debug会很蛋痛的!
此帖出自stm32/stm8论坛
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

板凳
 
提高优化级别之后你会发现有的bug很难找也很奇怪。的对着反汇编的指令找问题。建议把printf函数的功能去掉,这个占用的空间不小。
此帖出自stm32/stm8论坛
 
个人签名亚里士缺德
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

4
 
strong161 发表于 2016-9-22 14:46
这个……仿佛是两码事呀!提高优化级别应该在后期干的事,否则debug会很蛋痛的!

空间不足本来就是后期才会出现的事啊
此帖出自stm32/stm8论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

5
 
汤权 发表于 2016-9-22 14:58
提高优化级别之后你会发现有的bug很难找也很奇怪。的对着反汇编的指令找问题。建议把printf函数的功能去掉 ...

printf默认是不支持的吧?好像加了stdio.h了空间会占用比较多
此帖出自stm32/stm8论坛
 
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

6
 
.......不是的,每个编译器都会有一个选项,这个选项的作用是不将没用到的函数编译到最终的bin文件中。添加stdio头文件但是不用里面的函数是不占用空间的。重写了fputc函数,或者自己使用sprintf函数写一个printf函数就能使用printf,但是占用空间的是sprintf函数,占用得很多
此帖出自stm32/stm8论坛
 
个人签名亚里士缺德
 
 

回复

17

帖子

1

TA的资源

一粒金砂(初级)

7
 
感谢分享!
此帖出自stm32/stm8论坛
 
 
 

回复

6

帖子

1

TA的资源

一粒金砂(中级)

8
 
感谢分享,禁止断言使能后有屏蔽掉printf函数readonly code 足足少了3196byte
此帖出自stm32/stm8论坛
 
 
 

回复

483

帖子

0

TA的资源

一粒金砂(中级)

9
 
学习了 ,printf占这么多内存。
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

10
 
我刚遇到的,C/C++ compiler->optimizations开到High(size),485通讯老是出错(50%到70%的丢包率),查了一天多,发现Modbus每次都多收数据,debug的时候由于优化太高很多地方不执行,蛋疼啊 !为了能一步步仿真,调到low之后,还没查呢,全好了。几万条数据,没一个丢包的,你敢信!!!到现在还不找为啥呢!!!关闭USE_FULL_ASSERT确实省很多空间!这是有断言的:6 709 bytes of readonly  code memory,  1 277 bytes of readonly  data memory,    716 bytes of readwrite data memory。这是屏蔽断言的:  5 171 bytes of readonly  code memory,    682 bytes of readonly  data memory,    716 bytes of readwrite data memory,真的省了好多!!
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
期间还怀疑硬件的问题,各种接线,各种电阻,换换换。。。。。。,结果不是硬件的问题!要我说,选这种容量和性能刚刚满足自己需求的单片机,纯粹是为难自己!!余量很重要啊。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表