内存是片内的512Byte(some else)左右,掉电丢失,如你定义一个变量int a =xxxx;它就是放在内存中的,数据就是你要处理的内容,flash 相当于硬盘有8k左右,准确的来说是相当于普通电脑内存里的代码段。你写的整个程序(比如函数的代码之类的)就是放到flash里面去的。而且一旦烧写进去了就不能在运行时修改。也就是说如果你定义一个code a=120; 那么它就定死在flash里了,你不能再用 a=10;去修改它。内存就是用来放临时产生的数据的。
现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据。另外,一些变量,都是放到RAM里的,一些初始化数据比如液晶要显示的内容界面,都是放到FLASH区里的(也就是以前说的ROM区),EEPROM可用可不用,主要是存一些运行中的数据,掉电后且不丢失。