[求助] STM32 最大数组能开多大的

jishuaihu   2018-4-8 16:28 楼主
用STM32F103RCT6做一个串口转WIFI的模块。串口部分数据量比较大,做了一个全局变量的数组来做缓存。可是我发现数组的长度最大只能到2048个,也就是2K。如果再加大的话也不报错,但是是watch里看的话数组最大还是2047。
有没有人遇到过这个问题或者知道是咋回事的,给解释一下。

回复评论 (7)

没有遇到过,也没有定义过这么大的数组,如果总是2048个,有可能是编译器在什么地方限制了,不然理论上只要不超出内存大小,都没有问题
刻苦学习,共同进步
点赞  2018-4-8 19:56
那可能是watch的问题,数组没啥限制的
点赞  2018-4-8 22:38
watch里能看到的数据量和版本有关系,模糊的记得keil哪个地方能调,不知道你是不是keil,不行你就用memory看吧。
这个数组大小基本上就是片上内存总量-堆-栈-其它全局量占用
点赞  2018-4-8 22:43
引用: huo_hu 发表于 2018-4-8 22:43
watch里能看到的数据量和版本有关系,模糊的记得keil哪个地方能调,不知道你是不是keil,不行你就用memory ...

谢谢,我在网上也搜了一下,好像没有什么好办法,只能看memory了。
点赞  2018-4-8 23:02
引用: jishuaihu 发表于 2018-4-8 23:02
谢谢,我在网上也搜了一下,好像没有什么好办法,只能看memory了。

数组太大容易把调试器拖得很慢
点赞  2018-4-8 23:10
如果是全局变量的话,应该按照你的这个STM32F103RCT6应该是有256K的flash空间。理论上不应该这么大就不行了。做过1024长度的没问题
点赞  2018-4-9 09:53
应该是 watch 的限制。
watch 太大肯定会拖慢调试速度,所以有必要做出限制。
点赞  2018-4-10 15:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复