打印
[应用相关]

单片机内部的通用寄存器和内部RAM有什么区别啊

[复制链接]
600|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
androidbus|  楼主 | 2016-12-15 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机内部的通用寄存器和内部RAM有什么区别???
沙发
litengg| | 2016-12-15 20:19 | 只看该作者
说到底就是效率,最高的是ACC(但有些MCU没有这个),其次是寄存器(比如R0),再其次是RAM(有些MCU分的很细,比如51)

使用特权

评论回复
板凳
qiangweii| | 2016-12-15 20:20 | 只看该作者
ACC,R0这些都公用资源,大家都可以用,一般也必须要用,如果用C写程序,一般可以不考虑ACC,R0的用法,这是编译器的事。

使用特权

评论回复
地板
shashaa| | 2016-12-15 20:26 | 只看该作者
如果用汇编,对ACC,R0的使用就是体现功力了,比较好的方法就是参照编译器对ACC,R0使用原则。。

使用特权

评论回复
5
xia00| | 2016-12-15 20:27 | 只看该作者
静态变量在各个任务切换时保存不变,也就是说静态变量不管执行的是那段程序,都在RAM里占据一个位置。

使用特权

评论回复
6
hfdy01| | 2016-12-15 20:34 | 只看该作者
任务切换当然只需要保存公用资源。。

使用特权

评论回复
7
feiqi1| | 2016-12-15 20:35 | 只看该作者
要是定义的过多的外部变量,超过了RAM的范围,编译器能检查出来吗?

使用特权

评论回复
8
CallReceiver| | 2016-12-15 20:45 | 只看该作者

堆栈用的就是RAM,如果你定义变量过多,那你程序里面堆栈空间就很少

使用特权

评论回复
9
boy1990| | 2016-12-15 20:45 | 只看该作者
RAM就是内部运行的存储。

使用特权

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

本版积分规则

181

主题

1597

帖子

3

粉丝