I dumped the flash memory of an old ARM9 Chip running VxWorks using the SEGGER J-Link and the savebin command from J-Link Commander.

Here is an example of a line of HTML stored on memory.

<!DOC^YPE H^MN PUNLOC "///W?C//NTN NTOL 4.01//EN" "nt~p>//ww.w?.oro/^R/h~mn4/s~roc~.ntn">

What it should be

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

The pattern of error that I see is the last 4 bits of every other byte is replaced with different bits.

So the two bytes CT(43 54) in DOCTYPE become C^ (43 5E). The first 2 bits of the two bytes are always correct but the last 4 are not.

My question is, what is causing this systematic error? Is it a problem with the JTAG configuration or some ECC or something thing else completely?

  • It looks like problem in jtag configuration or usage. Did you try to get some copies of the binary and check differences between the copies ?
    – w s
    Aug 13, 2019 at 5:20
  • I think you are right, the problem is some jtag configuration error. I am switching to openOCD for more control over settings but I am not sure what I should change exactly. Unfortunately I do not have access to a copy of the unchanged binary but I have found enough strings to see that the errors are consistent throughout the whole binary. Aug 13, 2019 at 19:42
  • So I tried using openOCD and got the same result. I am now leaning towards the pattern being a ECC i am not sure which one yet. Aug 17, 2019 at 19:58


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.