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

[复制链接]
1443|10
 楼主| hu9jj 发表于 2019-3-21 15:14 | 显示全部楼层 |阅读模式
KEIL的出错提示如下图:

20190321_0.jpg


是运行的内存不够吗?

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

20190321_06.jpg

chuntian2016 发表于 2019-3-22 23:22 | 显示全部楼层
程序设计中忌讳使用大数组的
baimiaocun2015 发表于 2019-3-23 20:41 | 显示全部楼层
合理设计你的代码中的变量的,不要用大数组的
 楼主| hu9jj 发表于 2019-3-24 10:55 | 显示全部楼层
谢谢两位大侠的提示!这是我移植的代码,原代码不光是定义了两个下标150的大数组,而且还定义为全局变量,我查了一下,该数组仅仅在一个函数中使用,我将其改在函数内定义的局部数组,编译就没问题了。再次感谢两位大侠的热心帮助!
lvben5d 发表于 2019-3-27 20:36 | 显示全部楼层
hu9jj 发表于 2019-3-21 19:18
经过分析测试,是内存变量定义的太多,造成FLASH不够。我将代码中两个下标为150的数组变量修改为15,编译就 ...

建议楼主 学会使用结构体来框住全局变量,这样 其他.C使用的时候 就不需要一个一个extern ...
 楼主| hu9jj 发表于 2019-3-28 13:10 | 显示全部楼层
谢谢楼上提示,正在!努力学习中。
xujunyi3611 发表于 2019-3-28 17:05 | 显示全部楼层
换大容量的芯片就好了,看编译后的大小就知道了。
123ycli 发表于 2019-3-28 17:33 | 显示全部楼层
no space肯定是空间不够了,你换个大型号的芯片编译试试,肯定是没有问题的。
 楼主| hu9jj 发表于 2019-3-29 07:34 | 显示全部楼层
谢谢各位的关心,问题已经解决了!我将原来的定义全局变量改为函数内部变量就通过了编译。
HKingS 发表于 2019-3-29 17:22 | 显示全部楼层
lvben5d 发表于 2019-3-27 20:36
建议楼主 学会使用结构体来框住全局变量,这样 其他.C使用的时候 就不需要一个一个extern ... ...

尽量少用全局变量,增加耦合度,实在不行,只能换大容量的芯片了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

151

主题

1063

帖子

11

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