Solution from Freescale Support
Please uncheck the option "Generate Byte Addresses" in the M56800ELinker panel of target setting, because this option is not supported by56800E Flash Programmer. If you have already done this, the issue may be due to some stringscontaining even number of characters. For example, the following stringhas 4 characters:Char *str ="1234";However, after being compiled with the compiler, the str has 4characters plus an ending byte of 0.So the str actually has 5 bytes in the memory. And the linker generatesa S-Record for only 5 bytes, not 6 bytes (in whole words).There are two workarounds as below to solve this issue,1) Simply add one byte at the end as 00 as below in your S-record file:Original line: S306020000B40043After modification: S307020000B4000042It should work.2) This is CW issue, and when you have even number of chars in a string.You also can workaround it by adding one more char '\x00' in your stringwhich has even number of chars. This problem has been fixed in the latest patch (CodeWarrior 8.1), seethe comments below in CW8.1 release note. * MTWX20712: Linker adds padding only when user requests SRecgeneration. Linker also issues a warning when padding sections.