查看: 3852|回复: 0

STM32局部数组太大问题

[复制链接]
  • TA的每日心情
    奋斗
    2015-9-15 13:42
  • 签到天数: 110 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-10-13 21:57:52 | 显示全部楼层 |阅读模式
    分享到:
    c语言里面,局部变量存在栈里面,单片机里面栈的大小相当有限,所以定义太大的数组,操作的时候就可能导致超出栈的大小。。改变其他内存的数据,改变的地方是未知的,如果改变的是系统的核心的结构,就导致系统崩溃。。而全局变量在全局区(静态区)


    修改startup_stm32f10x_XX.s文件的 Stack_Size EQU 0x00000XXX 其默认值为 0x00000400 1024字节,改变栈的大小,但是栈不能开的太大,除了变量需要,调用的函数参数也需要压栈


    总结:对于较大的数组  1.改变栈的大小(不推荐);2.定义成static的(推荐);3.定义为全局变量(推荐)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-21 09:25 , Processed in 0.105939 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.