[STM32F1] 关于数组长度

[复制链接]
1349|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 数组就编译不过去了
Xflyan 发表于 2017-8-5 14:12 | 显示全部楼层
本帖最后由 Xflyan 于 2017-8-5 14:13 编辑

RB也就20K RAM,20K = 20480,减去 19200 等于 1280,还有堆还有栈,你让编译器给你放哪去??最基本的数学题啊
gujiamao12345 发表于 2017-8-5 14:23 | 显示全部楼层
一个网络包才1.5K  你为何需要3个4800...
mmuuss586 发表于 2017-8-5 17:33 | 显示全部楼层
容量超出了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

336

帖子

3

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