1.1.程序运行为什么需要内存

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,”不需要刷新就能保存数据“和“断电就不能保存数据”的区别

总结:

1:有的时候再学习一个点的时候会连带产生很多不会的点,但是对于初学者来说并不能很好的区分哪些需要深入,深入到什么地步,哪些只需要了解。我解决的方法是,先对它们都有个了解,有一个初步印象,后面再需要谁了,就再深入研究谁。这样既避免了把时间浪费到了研究那些没用的,又给那些以后需要深入研究的留下一个印象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值