单片机下程序RAM, ROM ,Flash
8K的flash是有8*1024个字节,一条指令可能有1~4个机器码,即1~4个字节,其中1~2机器码的指令使用最为频繁,所以这样算,大约可以写4000~8000条指令。一般的应用是写不到这么多的指令的。但是用于存储其他数据,例如汉字,数字点阵代码可能会超出预算。对于真的不够用的情况,建议楼主直接买块大容量的片。扩充flash不是很可取,增加了系统的不稳定因素,又提升了板的面积,布线难度。假如真的要扩容,可以有很多办法。扩展EEPROM(现常用256K~1M),或扩展基于SPI总线的flash memory(主流32M~128M),此两个总线驱动程序简单,方便扩展。
单片机FLASH主要用作程序存贮器,就是替代以前的ROM,最大的有有点是降低了芯片的成本并且可以做到电擦写,目前市场上单片机的FALSH寿命相差比较大,擦写次数从1000~10万的都有,但存储时间可以保证40年,在选用时要注意.还有一些廉价的单片机为了集成可掉电的数据存储器,没有选用价格昂贵的EEPROM,而用FALSH来做的,但要注意其寿命最多就10万次,而且擦写不能字节擦写,这要注意使用的场合其寿命是否满足要求.
RAM是数据存储器,跟计算机里面的内存差不多,主要是用来存放程序运行中的过程数据,掉电后就会丢失之前的数据,所以程序在上电时需要进行初始化,否则上电后的数据是一个随机数,可能导致程序奔溃.
ROM就是程序存储器,掉电后数据不会丢失,但在程序运行过程中其数据不会改变.早期的单片机的ROM因为擦写修改麻烦,价格昂贵或者价格低廉的OTP型无法修改数据等原因已经被现在的FLASH存储器替代了.因为FLASH的擦写很容易,现在的部分单片机支持在线内部编程,通过特定的程序执行方式可以修改FALSH的内容,而实现在线修改程序存储器.这与上面说的程序存储器的内容在运行的时候不可被改变是不冲突的,因为在程序正常运行时,其内容不会改变,只工作在只读状态下的.
编辑:admin 最后修改时间:2018-05-19