打印
[STM32F1]

关于数组长度

[复制链接]
944|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
clz918|  楼主 | 2017-8-5 11:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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).

   请教大家需要修改那里
沙发
huotou| | 2017-8-5 11:46 | 只看该作者
这个是局部变量吗?如果是局部变量,在启动文件里修改下Stack的大小,栈容量分配小了

使用特权

评论回复
板凳
dalarang| | 2017-8-5 12:24 | 只看该作者
你用的哪个型号?
int[4800]可就有19200字节了,如果3个数组就接近57k的RAM,超出部分型号的RAM上限了,你当单片机是电脑啊,这么挥霍。

使用特权

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

使用特权

评论回复
5
Xflyan| | 2017-8-5 14:12 | 只看该作者
本帖最后由 Xflyan 于 2017-8-5 14:13 编辑

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

使用特权

评论回复
6
gujiamao12345| | 2017-8-5 14:23 | 只看该作者
一个网络包才1.5K  你为何需要3个4800...

使用特权

评论回复
7
mmuuss586| | 2017-8-5 17:33 | 只看该作者
容量超出了

使用特权

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

本版积分规则

111

主题

336

帖子

3

粉丝