WHAT IS TRUE FLASH RAM MEM CAPACITY OF MCU..??

Status
Not open for further replies.

H_D_R

Full Member level 6
Joined
Jan 31, 2008
Messages
329
Helped
26
Reputation
52
Reaction score
9
Trophy points
18
Location
India
Activity points
0
HELLO ALL,...

I HAVE DONE PROGRAMMING ON AT89S52.
IT HAS 8K FLASH RAM. AND MY CODE BECAME 9K(HEX FILE).:!:
ALTOUGH I AM ABLE TO STORE THE CODE AND IT WORKING PERFECTLY TOO.

SO,I WANT TO KNOW THAT WHAT IS THE ORIGINAL MAX RAM LIMIT OF 89S52.??:?:

THIS QUESTION IS NOT ONLY FOR THIS MCU.
BUT FOR ANY MCU..
HOW WE CAN KNOW ANY MCU'S TRUE STORING CAPACITY..??

THANKS IN ADVANCED FOR YOU RESPONSE..!!!
 

Re: HOW IT IS POSSIBLE..???

Hi

In order to know that you should convert the HEX file to binary form using hex2bin converting software.
search google to find a utility who can convert hex file to binary file

The file binary size is the size that occupy your flash in the micro controller

All the best

Bobi
 

Re: HOW IT IS POSSIBLE..???


SO YOU MEAN TO SAY THAT THEY ARE SHOWING THE MEMORY LIMIT AS PER BINARY CODE..??

IF YES THEN IT IS IMPOSSIBLE BCOZ BINARY FILE WILL BE MORE LARGER THEN HEX FILE..
AM I RIGHT...??
 

If you by hex file mean a Intellec hex file, the file is 235% and upwards larger than the data you transfer in it. If you send a record with 32 byte, the hex file contain 75 characters for the same data. This is for a normal record of 32 byte. It is even worse, when you transfer less than this in each record.

9k hexfile contain only about 3900 bytes binary data, well inside the 8k limit.

TOK
 

this memories can hold up to bilions CAPITAL LETTERS, which mean they are perfect for SCREAMERS and people who have their SHIFT and CAPS LOCK broken in the keyboard...

so STOP SHOUTING!

if you'd just look at the file, you'd see the answer for your question...

Code:
:020000040000fa
:080000000002040000000000f2
:020000040000fa
:100400000f802000807f2400000188000000000091
:10041000050007000c000700800202000000000039
:100420000040da000000fe004440a900c0032000a4
:100430000000e0000300320000002000a00188005e
:100440004440a80000000600803e2000010020007b
:100450001600370062004000e080480091018800eb
:100460009001ba0062004000e080480091018800dd
:100470009002ba0062004000e08048000002eb00f9
:100480006028e10005003a008301e900070033001d

1. this file contains semicolons, which are not part of the code
2. this file contains addresses (beginning of eqch line), which are not part of the code
3. this file consists of chars. each char ocupies 1byte, but you need 2 chars to show you the hexadecimal value, which occupies 1byte in ROM, that's why this file is that big
4. STOP SHOUTING

0x41 0x56 0x45!!
 


i agree with your 1st point bcoz i know it.
but i dont know about your rest of points.
can any one tell is he right or wrong..???

btw, Freddie Chopin may i know your mean to say "STOP SHOUTING"..???
 

If you bothered to read my last post, you would see that this is the essence of what Freddie C says, in his.

His example is worse than mine, and needs 2.81 bytes for each byte you transfer. The 9k hex file will now only contain about 3270 bytes of code.

Every line in the hex file transfer 16 code bytes, using 45 characters.

The general rule is every byte is expanded to 2 characters, and every line adds 13 characters in overhead.
These are 1 ':' character, 2 bytes number of characters transfered, 4 bytes of address, 2 bytes of record type, and lastly a 2 bytes checksum. In addition CR, LF is added too.

TOK
 

can any one simply tell me how to know the real storage memory of MCU..???
 

Flash is not RAM, it is programable nonvolatile memory.
The AT89S52 has only 256 bytes of true RAM, and 8k (8192 bytes) of flash PROGRAM memory.

And it is all in the datasheet. If you run a development kit, the number may be less, depending on the resources used by the system.

The flash memory is specified to take 1000 writings, not too much in todays world of flash memory.

TOK
 

potyo said:
You can read it in MCU's datasheet...

hello....

i have read datasheet already..

and i know that also "AT89S52 has 8K Flash memory".
but my question is regarding real storage capacity.
please read my question carefully again...

thanks for replying..
 

Hi,
As say before, AT89S52 has 8K of flash memory and 256 bytes of ram.
The hex data that you compile is store at the flash memory depend how many line you use.
The ram memory is use in the running program to store the data temporary while the uC is processing.
AT89S52 doesn't have any eeprom memory so it will not store any user data on it.
thanks
 

H_D_R said:
and i know that also "AT89S52 has 8K Flash memory".
but my question is regarding real storage capacity.
please read my question carefully again...
your question was answered like 5 times already, but you are still waiting for the answer...

the value in datasheet IS real capacity. If you don't believe us, that hex is almost 3x bigger than the code it contains - it's a pity, we'll have to live with that... you even had the answer WHY it is 3x bigger...

0x41 0x56 0x45!!
 


thank you for your reply...
 

Hi dear if your code is more then 8KB
You can either interface the external memory or swith over to new microcontroller of the same series.
For more info
Visit
www.google.com
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…