1.1.程序运行为什么需要内存
程序运行的过程就是电脑在不断地进行计算,在计算过程中需要各种数据(也就是变量),程序运行需要数据(变量)和代码共同支持,代码就是函数,它负责指令,在执行这些指令的过程中就需要产生一些数据(变量)。知识点:
1:冯诺依曼结构:代码和数据存放在一起
哈弗结构:代码和数据分开存放。代码存储在flash中,数据存储在RAM中。2:代码就是函数,数据就是全局变量和局部变量
3:内存分为动态内存SRAM 和静态内存DRAM
4:单片机使用的是静态内存,大部分单片机中常量存放在flash中(代码段),变量存放在DRAM中。
我在学习过程中遇到的问题:
1:什么是flash(1) flash也叫闪存,在断电的情况下不会丢失所存信息,管理内存不是以字节为单位的,而是以块为单位,块的大小一般大小为 256K。
2:SRAM和DRAM的区别
(1)首先都是RAM(随机存储器),又分为静态随机存储器和动态随机存储器,
(2)SRAM优点:速度快,不需要刷新就能保存数据,功耗低,但是断电就不能保存数据了。
DRAM需要不停地刷新才能保存数据,切断电源也是会丢失数据的。
3:全局变量和局部变量分别存储在哪
(1)全局变量存储在堆,局部变量存储在栈。堆内存是手动分配释放的,栈内存是由系统自动完成的。
4:单片机都是用静态内存吗
一般是,单片机内置的和外接的内存一般都是静态内存,这种内存比较贵,太大了用不起。
5:对于SRAM,”不需要刷新就能保存数据“和“断电就不能保存数据”的区别