[STM8] iar怎么减小编译出来的代码体积

[复制链接]
4911|5
 楼主| donkey89 发表于 2011-9-6 09:58 | 显示全部楼层 |阅读模式
本帖最后由 donkey89 于 2011-9-6 10:01 编辑

编译出来的好臃肿.一个空main就花掉几百字节了
我只知道函数自己写,包括不用库,还有其他方法没有?
例如去掉调试信息?例如干掉assert_param?这些都怎么操作?能减小体积吗?
还有一个相关问题:即便是调用官方库的一个简单过程,官方库源代码如下
  1. uint8_t FLASH_ReadByte(uint32_t Address)
  2. {
  3.      /* Check parameter */
  4.   assert_param(IS_FLASH_ADDRESS_OK(Address));
  5.      
  6.      /* Read byte */
  7.      return(*(PointerAttr uint8_t *) (uint16_t)Address);

  8. }
就这么简单的东西,空间就增加好几百.内存占用也增加几十字节.真不知道为什么
IJK 发表于 2011-9-6 10:25 | 显示全部楼层
编译出来的好臃肿.一个空main就花掉几百字节了
我只知道函数自己写,包括不用库,还有其他方法没有?
例如去掉调试信息?例如干掉assert_param?这些都怎么操作?能减小体积吗?
还有一个相关问题:即便是调用官方库的一个简 ...
donkey89 发表于 2011-9-6 09:58


去掉调试信息(例如干掉assert_param),这应该很方便,通常只要把1个define去掉就可以了:注释掉 USE_FULL_ASSERT之类的。
ccicc 发表于 2011-9-6 16:47 | 显示全部楼层
是否因为编译时用的是debug模式?debug模式会额外的包含一些调试用的代码。release模式则会精简很多。
yybj 发表于 2011-9-6 21:32 | 显示全部楼层
去掉调试信息
guanggaoren 发表于 2011-9-7 01:43 | 显示全部楼层
如果用库的话,优化时不要把没有调用的函数也给编译上.
 楼主| donkey89 发表于 2011-9-7 08:12 | 显示全部楼层
5# guanggaoren
怎么操作?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:数显ESR电容等效内阻测量仪 http://cn.digit-esr.com

241

主题

1609

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部