It depends upon the individual processor but typically during the programming stage, one or more bytes that can not normally be read by the devices own code can be read by the programming unit. Usually, this is a manufacturers ID and one or more bytes to identify the actual device type. It is used by a programmer to tell if the wrong device has been selected. There is no standard method to read the bytes, you have to refer to the programming specification to see how it can be read for each device type.
suppose i am working with at89s52 and i want know the location of signature byte in rom memory and can we use those location for other purpose plz guide thank you...
05 Miscellaneous Read Functions
:02xxxx05ffsscc
Where:
02 = number of bytes in the record
xxxx = required field but value is a ‘don’t care’
05 = function code for misc read
ffss = subfunction and selection code
0000 = read manufacturer id
0001 = read device id 1
0002 = read ISP/IAP version
0700 = read security bit (00000 SB 0 Double Clock)
cc = checksum
Example:
:020000050000F9 (display manufacturer id)
but I don't think this data is writable. That wouldn't make sense so I don't think you can use the address for anything else. I copied the text from the ICSP section on hex commands.