EEPROM And SRAM Advantage

I have maked a sketch and it's running well in Flash memory. Our skech is saved in Flash memory which is 32kb in arduino uno.what is advantage of SRAM that is just 2 KB (ATmega328) and EEPROM(1k)?

Neither SRAM nor EEPROM can hold program code, but flash (program memory) can't hold variables. EEPROM is usually used to hold settings that have to survive a processor reset.

AWOL:
EEPROM is usually used to hold settings that have to survive a processor reset.

what type of setting EEPROM have. Kindly elaborate it.
Second, when i have to use SRAM in my program.

You might use the EEPROM to store things like the IP address assigned to an ethernet shield, or a unique identifier for the device in a serial network perhaps. Things that aren't going to change often, but want to be able to be changed.

You use SRAM whenever you declare a variable.

int foo;

uses two bytes of SRAM.

Some wikipedia pages to help you understand the concepts:

http://en.wikipedia.org/wiki/Flash_memory http://en.wikipedia.org/wiki/RAM http://en.wikipedia.org/wiki/Eeprom

what type of setting EEPROM have. Kindly elaborate it.

http://arduino.cc/en/Reference/EEPROM

when i have to use SRAM in my program.

When ever you have a variable it is stored in SRAM along with the stack.

Thanks for help. How i can check my EEPROM space.why EEPROM’s space is too small as compared to flash memory.

How i can check my EEPROM space

Look at the specification of the arduino you have. That will tell you how much EEPROM it has. This is not used at all unless your sketch specifically uses it.

why EEPROM's space is too small as compared to flash memory.

Because it is not designed for code but for nonvolatile storage.

Thanks to all Specially Grumpy_Mike. Now I come to now what the story is. This Community always help me whenever i need.

It is too much related page. Every C programmer must understand that, Embedded Programer can improve their coding. http://www.coactionos.com/embedded-design/101-understanding-memory-usage-in-c.html

AWOL: Neither SRAM nor EEPROM can hold program code, but flash (program memory) can't hold variables. EEPROM is usually used to hold settings that have to survive a processor reset.

Is it only true for some embedded architectures,or for all?

Is it only true for some embedded architectures,or for all?

"embedded architectures" is a very broad term, but generally, no, you don't (can't) put variables in flash, and on Harvard architectures, the processor normally cannot directly execute code that is not in flash.

For most. They tend to be Harvard architecture where program space and data space are conceptually diffrent spaces. A PC will use Prinstone architecture where the two spaces are the same.