I am trying to patch new information into the flash of an already programmed device using FlashMagic.
Steps I have done so far:
- original program has a variable located far away from the other code in it's own flash-block (let's say size of 1 byte at 0x50000)
- this original program is flashed into the device and is working
- create a hex file that contains a new value (0xAB) for the formerly mentioned variable
- now flash this hex file into the device, erasing only block 0x050000 - 0x057FFF (there is no program code within this block other than the variable)
After flashing, the memory looks like expected. 0xAB is shown at the correct position. The rest of the block has been reset to 0xFF.
However, the device does not execute any code whatsoever after a reset.
What am I missing here?
Does FlashMagic alter something else within the the controller?
Or does it have anything to do with that NXP valid code checksum thing?
Steps I have done so far:
- original program has a variable located far away from the other code in it's own flash-block (let's say size of 1 byte at 0x50000)
- this original program is flashed into the device and is working
- create a hex file that contains a new value (0xAB) for the formerly mentioned variable
Code Select
:020000040005F5
:01000000AB54
:00000001FF
- now flash this hex file into the device, erasing only block 0x050000 - 0x057FFF (there is no program code within this block other than the variable)
After flashing, the memory looks like expected. 0xAB is shown at the correct position. The rest of the block has been reset to 0xFF.
However, the device does not execute any code whatsoever after a reset.
What am I missing here?
Does FlashMagic alter something else within the the controller?
Or does it have anything to do with that NXP valid code checksum thing?