搜索
bottom↓
回复: 8

IAR调试STM8, 删掉长度256的数组,编译出来长码长度不变

[复制链接]

出0入10汤圆

发表于 2020-3-21 22:37:33 | 显示全部楼层 |阅读模式
我加了一个 const uint16_t TempTab[256]

后面想再加一个数组的时候发现空间超了。

然后,我发现我只有1百多字节。

所以,我去删掉这个const uint16_t TempTab[256]

结果还是编译出来,代码长度不变。

这个数组,我是有调用的, 不是没调用可能被优化掉那种

晕了。

IAR 3.11.1
MCU stm8s003

出0入442汤圆

发表于 2020-3-21 23:32:13 | 显示全部楼层
你清一下工程。根据经验,是旧文件在做怪。

还有,你仔细看一下是报找不到符号的链接错误还是空间不够的错误?

出0入10汤圆

 楼主| 发表于 2020-3-22 08:28:18 | 显示全部楼层
wye11083 发表于 2020-3-21 23:32
你清一下工程。根据经验,是旧文件在做怪。

还有,你仔细看一下是报找不到符号的链接错误还是空间不够的错 ...

谢谢,指点,

我看一下英文,感觉大意思是 no enough setion.

应该是不够空间吧

另外,接触IAR 3天, 还不知道怎么清工程

出0入0汤圆

发表于 2020-3-22 09:14:03 来自手机 | 显示全部楼层
project->clean

出0入10汤圆

 楼主| 发表于 2020-3-22 10:11:33 | 显示全部楼层
清了工程之后,发现在还是一样。

然后发现在,用STM的库真的太占空间了。

我现在把一些库函数换成寄存器直接操作,可以省好多空间

出0入4汤圆

发表于 2020-3-22 12:00:01 | 显示全部楼层
完整编译一下呢?

出0入8汤圆

发表于 2020-3-22 12:09:07 | 显示全部楼层
优化级别是多少?

出0入4汤圆

发表于 2020-3-22 12:12:55 | 显示全部楼层
本帖最后由 atommann 于 2020-3-22 12:16 编辑
BRN 发表于 2020-3-22 10:11
清了工程之后,发现在还是一样。

然后发现在,用STM的库真的太占空间了。


也是在 STM8S003 上写软件,开发中发现 Flash 不够用了,我把操作全部换成寄存器操作模式。
比如要用硬件 I2C 的库,先看官方库的实现,再把相应的函数精简到 my_i2c.c 中。
一边精简,一边看 list 中 Flash 字节的占用量。

后来还是把程序放进去了。事后自己都觉得好搞笑(完全没有必要把时间浪费在这上面),原因是硬件先生产出来,而软件还没有准备好,又没有大容量 pin to pin 兼容的型号。
虽然干了一些苦力,但这个过程却增加了 STM8 的了解。

出0入4汤圆

发表于 2020-3-22 12:21:49 | 显示全部楼层
你把那个生成 lst 文件的选项打开,查看自己声明的变量在何处,占用了多少字节。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 22:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表