单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样单片机还能运行

单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样单片机还能运行吗?电脑出现这种问题是怎么解决的... 单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样单片机还能运行吗?电脑出现这种问题是怎么解决的 展开
 我来答
匿名用户
2016-05-22
展开全部
这个问题也困扰过我,比如定时器中断里设置一个变量x,不设置初值,然后程序里放个x++。
结果就是那个x真的一直在加。
不过我没有去深究过,个人理解是,如果系统不缺空间的话,单片机就不会去清除空余的单元。

是不是这样我不清楚,但是分析如下:
我们自己用汇编写程序的时候,直接对RAM操作,如果不去清0,里面的数是永远不会变的。这说明,单片机本身是没有这种操作的。
如果说C语言编译过程中有加这种功能,也很难想象会在每个工作周期中不断的去检查哪些单元闲置的,并且对其清零。因为这样要占用很多CPU时间。
个人猜测,注意,是猜测!应该是当不得不要把某个物理单元划分给新的变量时,才会真的把旧变量清除掉。否则,哪怕是局部变量,对应的物理单元应该是一直不变的。
(以上有错,是我一开始写的,请看下面的分析为准)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式