I see ISP/IAP commands can be used to read Serial Number and Identification Number. I would like to do this via JTAG instead. Is this possible? If so, what address holds these values? Thanks.
Hi Zengy
user can also read Serial ID with FlashMagic.
https://www.flashmagictool.com/
For more, see FlashMagic help manual.
Have a nice day,
Jun Zhang
The user manual of your MCU should tell you the exact location/address. Those are registers in the SYSCON unit.
This is for the LPC1768. I can't seem to find this information in the User Manual (UM10360). I've searched for:
Identification Number
ID Number
Serial Number
Syscon
System Control
SCS
The SCS register only shows information on the oscillator: x400F C1A0.
Could you kindly guide me to the documentation with the location where the Serial/Id Number can be found for this device? Thanks.
At least in my LPC54xxx user manual, it is easy to find.
The 176x controllers are a bit older ... I only found this:
Thanks. I'm able to read the JTAG ID as well as other memory locations just fine. I was hoping that I could find documentation on the location of the Serial Number and Identification Number in memory, but so far have been unable to do so. Can those values be read from a more modern LPC54xx via JTAG? If not maybe it's not possible at all.
Supposedly even with the "Memory View" in the debugger:
@frank_m That is not the same thing.
@zengy I wouldn’t be surprised if the serial number is generated on the fly by code. I.e. there is not a location that contains the value. NXP do not publish their ROM code or algorithm, so I think you are stuck. A workaround would be to have a function in your code dedicated to returning the serial number. You can then use gdb script commands to execute that code from within the debugger and display the value. Not nice, but it would work.
You might be right.
Not sure what the "JTAG ID CODE" right above is either.
I suppose the OP meant this ID code, which just identifies the MCU type.
JTAG ID CODE is how a debugger identifies what it is talking to. Afaik it is define by ARM and will be the same for all Cortex-M3 devices (for example)
DEVICE ID 0 is defined by NXP and will be the same for all LPC1768 etc device
DEVICE ID 1 identifies the revision of the part
none of these is unique to a particular device.
@zengy is trying to get the unique device identifier (I think this is a 128 bit GUID)
> none of these is unique to a particular device.
Sure.
I have a hard time to come up with a use case for a unique ID requierd by the debugger.
A debugger (or other tool) usually needs the proper type ID for manipulations (erase, program, algorithms therefore, checks...).
My company uses post-build Hex/S19 patches to embed such unique or build-specific data in the application.