发新帖我要提问
12
返回列表
打印
[51单片机]

51内核,在没超RAM大小时,全局变量会被后面的变量等覆盖...

[复制链接]
楼主: 一叶倾城wwq
手机看帖
扫描二维码
随时随地手机跟帖
21
dog_xin| | 2018-12-10 07:44 | 只看该作者 回帖奖励 |倒序浏览
真的需要这么大的数据量吗?是否程序优化一下

使用特权

评论回复
22
ayb_ice| | 2018-12-10 08:37 | 只看该作者
18576478035 发表于 2018-12-7 18:22
堆栈空间一般需要留多大?我留看34byte堆栈空间够函数调用吗?

这个一般差不多了

使用特权

评论回复
23
苏山人家| | 2018-12-10 10:43 | 只看该作者
栈空间大小看函数最大嵌套层数(基本的函数调用消耗,返回地址,函数参数等),和函数内部的局部变量大小

使用特权

评论回复
24
一叶倾城wwq|  楼主 | 2018-12-10 13:35 | 只看该作者
dog_xin 发表于 2018-12-10 07:44
真的需要这么大的数据量吗?是否程序优化一下

这么多的数据量,在设计之初是不必要的,只是后面需求改了又改,加了许多东西,程序优化现在还没有使用,keil的配置还是small模式,不过我之前看过有得网友提过优化之后有得逻辑不对了?基于这个问题,我现在才没有配置优化。

使用特权

评论回复
25
一叶倾城wwq|  楼主 | 2018-12-10 13:38 | 只看该作者
苏山人家 发表于 2018-12-10 10:43
栈空间大小看函数最大嵌套层数(基本的函数调用消耗,返回地址,函数参数等),和函数内部的局部变量大小 ...

我的函数嵌套层数从主函数开始应该没有超过5层,顶多4层这样子,中断里没有调用过函数,这样子算下来应该所需占用的栈空间不大。

使用特权

评论回复
26
苏山人家| | 2018-12-14 11:32 | 只看该作者
一叶倾城wwq 发表于 2018-12-10 13:38
我的函数嵌套层数从主函数开始应该没有超过5层,顶多4层这样子,中断里没有调用过函数,这样子算下来应该 ...

还要看你各个嵌套函数的局部变量多少,局部变量也在栈里面,
另外5层函数+多级中断嵌套才是最恶劣情况(51 中断和线程公用一个栈)。

使用特权

评论回复
27
苏山人家| | 2018-12-14 11:35 | 只看该作者
一叶倾城wwq 发表于 2018-12-10 13:35
这么多的数据量,在设计之初是不必要的,只是后面需求改了又改,加了许多东西,程序优化现在还没有使用, ...

大多优化后的错误要不就是书写不规范,大多都是变量被优化到寄存器里面造成取值不正确,加volatile修饰就好。

使用特权

评论回复
28
一叶倾城wwq|  楼主 | 2018-12-14 11:41 | 只看该作者
苏山人家 发表于 2018-12-14 11:35
大多优化后的错误要不就是书写不规范,大多都是变量被优化到寄存器里面造成取值不正确,加volatile修饰就 ...

是的,逻辑必须尽量严谨,不然自己挖坑要么自己填要么别人填,这样真的不好

使用特权

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

本版积分规则