This is a follow-up to my post from June JS16
For bypassing the JS16 bootloader, it's important that the addresses FFB8/9/A are written:
FFB8: Flash Block Checksum High Byte
FFB9: Flash Block Checksum High Byte
FFBA: Checksum Bypass
It seems that the USBDM Flash Programmer does not write these.
E.g. this is the content of my s19 file:
Written with USBDMs Flash Programmer and read again using USBDM Memory Dump, I get this:
Written with a PE Multilink:
The difference AD vs AE is OK. This is the clock trim value.
The checksum is calculated from 0xC400 TO 0xFFAD and 0xFFC0 TO 0xFFFF so the trim value does not affect the checksum.
It seems that the USBDM programmer just ignores anything in this address range. Maybe the Flash Programmer is calculating the trim value and writing just this to this page.
Also, the "Verify Flash" does not find this difference.
BDM Firmware 4.12.1
DLL Ver 220.127.116.11
Windows 7 Professional, 64 bit