打印

编译出现这种情况是不是变量太多了?

[复制链接]
868|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hu9jj|  楼主 | 2019-3-21 15:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
KEIL的出错提示如下图:




是运行的内存不够吗?

沙发
hu9jj|  楼主 | 2019-3-21 19:18 | 只看该作者
经过分析测试,是内存变量定义的太多,造成FLASH不够。我将代码中两个下标为150的数组变量修改为15,编译就通过了。



使用特权

评论回复
板凳
chuntian2016| | 2019-3-22 23:22 | 只看该作者
程序设计中忌讳使用大数组的

使用特权

评论回复
地板
baimiaocun2015| | 2019-3-23 20:41 | 只看该作者
合理设计你的代码中的变量的,不要用大数组的

使用特权

评论回复
5
hu9jj|  楼主 | 2019-3-24 10:55 | 只看该作者
谢谢两位大侠的提示!这是我移植的代码,原代码不光是定义了两个下标150的大数组,而且还定义为全局变量,我查了一下,该数组仅仅在一个函数中使用,我将其改在函数内定义的局部数组,编译就没问题了。再次感谢两位大侠的热心帮助!

使用特权

评论回复
6
lvben5d| | 2019-3-27 20:36 | 只看该作者
hu9jj 发表于 2019-3-21 19:18
经过分析测试,是内存变量定义的太多,造成FLASH不够。我将代码中两个下标为150的数组变量修改为15,编译就 ...

建议楼主 学会使用结构体来框住全局变量,这样 其他.C使用的时候 就不需要一个一个extern ...

使用特权

评论回复
7
hu9jj|  楼主 | 2019-3-28 13:10 | 只看该作者
谢谢楼上提示,正在!努力学习中。

使用特权

评论回复
8
xujunyi3611| | 2019-3-28 17:05 | 只看该作者
换大容量的芯片就好了,看编译后的大小就知道了。

使用特权

评论回复
9
123ycli| | 2019-3-28 17:33 | 只看该作者
no space肯定是空间不够了,你换个大型号的芯片编译试试,肯定是没有问题的。

使用特权

评论回复
10
hu9jj|  楼主 | 2019-3-29 07:34 | 只看该作者
谢谢各位的关心,问题已经解决了!我将原来的定义全局变量改为函数内部变量就通过了编译。

使用特权

评论回复
11
HKingS| | 2019-3-29 17:22 | 只看该作者
lvben5d 发表于 2019-3-27 20:36
建议楼主 学会使用结构体来框住全局变量,这样 其他.C使用的时候 就不需要一个一个extern ... ...

尽量少用全局变量,增加耦合度,实在不行,只能换大容量的芯片了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

151

主题

1059

帖子

11

粉丝