打印
[应用相关]

数组长度

[复制链接]
480|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huanghuac|  楼主 | 2020-5-10 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, IO, TE, TI, se
最近在用STM32做一个东西(MDK)),需要用到3个很长的数组。 结果发现编译不过去,应该还是设置的问题
#define  lenth  4800
unsigned int ss1[lenth];


.\Obj\test plc.axf: Error: L6406E: No space in execution regions with .ANY selector matching stm32f10x_vector.o(STACK).
.\Obj\test plc.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.data).
.\Obj\test plc.axf: Error: L6407E: Sections of aggregate size 0x478 bytes could not fit into .ANY selector(s).

   请教大家需要修改那里

使用特权

评论回复
沙发
gongche| | 2020-5-10 11:25 | 只看该作者
这个是局部变量吗?

使用特权

评论回复
板凳
jlyuan| | 2020-5-10 11:28 | 只看该作者

如果是局部变量,在启动文件里修改下Stack的大小,栈容量分配小了

使用特权

评论回复
地板
gongche| | 2020-5-10 11:32 | 只看该作者

你用的哪个型号?
int[4800]可就有19200字节了,如果3个数组就接近57k的RAM,超出部分型号的RAM上限了,你当单片机是电脑啊,这么挥霍

使用特权

评论回复
5
chenho| | 2020-5-10 11:36 | 只看该作者

嵌入式设备拥有的资源往往有限,如果一个程序编译、链接之后的可执行文件大小略大于存储大小时,则不能生成可执行文件进行调试或固化到Flash中。

使用特权

评论回复
6
dingy| | 2020-5-10 11:38 | 只看该作者
在这种情况下我们一般不去从硬件上调整存储空间的大小(有些存储空间在片内,实在无法调整),而是去修改程序,试图将程序简化、将缓存减小、减少全局变量、少用大数组多用指针等等人工方法,有些时候这些方法很有效。

使用特权

评论回复
7
huanghuac|  楼主 | 2020-5-10 11:41 | 只看该作者
多谢二位的回复,我用的是STM32F103RBT6,现在的问题是我只定义了一个4800的unsigned int 数组就编译不过去了

使用特权

评论回复
8
happy_10| | 2020-5-10 11:43 | 只看该作者

RB也就20K RAM,20K = 20480,减去 19200 等于 1280,还有堆还有栈,你让编译器给你放哪去??最基本的数学题啊

使用特权

评论回复
9
zhaoxqi| | 2020-5-10 11:46 | 只看该作者
一个网络包才1.5K  你为何需要3个4800...

使用特权

评论回复
10
happy_10| | 2020-5-10 11:50 | 只看该作者

容量超出了

使用特权

评论回复
11
zhuww| | 2020-5-10 11:54 | 只看该作者
简化程序、减小缓存、减少全局变量

使用特权

评论回复
12
chuxh| | 2020-5-10 12:06 | 只看该作者
太长了 可以考虑二维数组

使用特权

评论回复
13
yufe| | 2020-5-10 12:09 | 只看该作者
看你定义在哪里了

使用特权

评论回复
14
pangb| | 2020-5-10 12:12 | 只看该作者
感觉 太大了 数据!

使用特权

评论回复
15
ousj| | 2020-5-10 12:19 | 只看该作者
或者外部加SDRAM 就可以完美解决这个问题了!

使用特权

评论回复
16
houcs| | 2020-5-10 12:22 | 只看该作者
外扩内存!

使用特权

评论回复
17
zhuww| | 2020-5-10 12:24 | 只看该作者
确实太长了,没有规划好空间。

使用特权

评论回复
18
wangzsa| | 2020-5-10 12:28 | 只看该作者
可以算下容量,单片机容量有限啊

使用特权

评论回复
19
chenho| | 2020-5-10 12:36 | 只看该作者
修改堆栈也可以,对于满足条件的可以的

使用特权

评论回复
20
huanghuac|  楼主 | 2020-5-10 12:40 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

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

本版积分规则

772

主题

8473

帖子

6

粉丝