搜索
bottom↓
回复: 11

CW10.6的编译错误,求助(已解决)

[复制链接]

出0入0汤圆

发表于 2014-7-4 11:23:13 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-7-30 10:06 编辑

见图片,是我定义的变量太多了么?怎么解决这个问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2014-7-4 12:44:57 | 显示全部楼层
怎么没人回复呢?

出0入0汤圆

发表于 2014-7-4 14:06:59 | 显示全部楼层
楼主你好
你的MKE02Z64VLC4芯片只有64KB的Flash和4KB的SRAM,请问你的程序是否有定义过多变量呢?

出0入0汤圆

发表于 2014-7-4 14:12:26 | 显示全部楼层
本帖最后由 FSL_TICS_Robin 于 2014-7-4 14:18 编辑
FSL_TICS_Robin 发表于 2014-7-4 14:06
楼主你好
你的MKE02Z64VLC4芯片只有64KB的Flash和4KB的SRAM,请问你的程序是否有定义过多变量呢? ...


从报错来看你的堆栈大小与m_data不匹配,请问你有手动修改堆栈大小、m_data大小吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-7-4 14:22:18 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-4 14:12
从报错来看你的堆栈大小与m_data不匹配,请问你有手动修改堆栈大小、m_data大小吗?
...

我没有改过,m_data最大能有多少?

出0入0汤圆

发表于 2014-7-4 14:32:44 | 显示全部楼层
wanstrive 发表于 2014-7-4 14:22
我没有改过,m_data最大能有多少?

这里定义的m_data就是上面提到的SRAM大小,你的芯片4KB的SRAM大小以16进制表示就是0x1000那么大。

这个SRAM使用还需要注意数组变量等不能跨界(上图那个1/4界),如果你定义一个很大的数组超过了1/4的SRAM大小就会出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-7-4 14:38:09 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-4 14:32
这里定义的m_data就是上面提到的SRAM大小,你的芯片4KB的SRAM大小以16进制表示就是0x1000那么大。

这个S ...

那如果是2KB的MKE02Z16VLC2呢?手头上就这两种片子。

出0入0汤圆

发表于 2014-7-4 14:46:51 | 显示全部楼层
本帖最后由 FSL_TICS_Robin 于 2014-7-4 15:11 编辑
wanstrive 发表于 2014-7-4 14:38
那如果是2KB的MKE02Z16VLC2呢?手头上就这两种片子。


如果你用的是CodeWarrior10.6的PE工具配置工程,那么你选择芯片型号时对应大小的m_data、堆、栈就已经填好到4楼界面处。
2KB的SRAM你按照6楼1/4那图看下,单个数组大小别超512B(单个数组别跨SRAM1/4界)

出0入0汤圆

 楼主| 发表于 2014-7-4 14:55:26 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-4 14:46
如果你用的是CodeWarrior10.6的PE工具配置工程,那么你选择芯片型号时对应大小的m_data、堆、栈就已经填 ...

哦,好的,我有个360个值得正弦表,定义成了32位int型,我把它改为16位short型就好了,我有点疑问,一个32位int型的变量是占RAM中的4个Byte,16位short型的变量占2个Byte?那我一个长360的short数组还是编译通过了呃~

出0入0汤圆

发表于 2014-7-4 15:08:53 | 显示全部楼层
wanstrive 发表于 2014-7-4 14:55
哦,好的,我有个360个值得正弦表,定义成了32位int型,我把它改为16位short型就好了,我有点疑问,一个3 ...

我在8楼的表述不准确,应该是单个数组大小别超3/4而非1/4。
因为超过1/4的话,编译器会把数组放到SRAM_U这块3/4大小的区域。

出0入0汤圆

 楼主| 发表于 2014-7-4 15:16:31 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-4 15:08
我在8楼的表述不准确,应该是单个数组大小别超3/4而非1/4。
因为超过1/4的话,编译器会把数组放到SRAM_U ...

那我问题的后半部分呢,是一个int型就占了4bytes的RAM?

出0入0汤圆

发表于 2014-7-4 15:25:18 | 显示全部楼层
wanstrive 发表于 2014-7-4 15:16
那我问题的后半部分呢,是一个int型就占了4bytes的RAM?

看你调用的32位int和16位short具体怎么定义的,32位一般就占4B,16位就占2B的RAM
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 01:53

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

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