I had some difficulties programming the internal flash via EZPort. The program always went into boot-exception. I noticed that the problem occurred in ROMcopy.c: __copy_rom_sections_to_ram() during initialization.
Looking at the flash with the memory browser shows that the last 4 zero-bytes are missing which are checked in the mentioned function.
I played a bit around with the flashing machanism and figured out that the last chunk I write is 708 bytes long. Enlarging this value to 720 (which is a multiple of 16 bytes) works. A value between 708 and 716 results in no or strange effects.
The documenation mentioned that the size of the data must be a multiple of 8 bytes due to the buffering in the FlexRAM.
Is the documenation wrong at this point. I really have to understand this issue so I can be sure future programmings will work.