I've done some more testing and have found out a few things and have gotten a little farther, but have still not succeeded.
I made several changes to the example MSD Bootloader project.
1 - In routine FlashArrayS19() in file, Loader.c, I initialized the variable "result" to 0 which was preventing multiple calls from executing.
2 - The second change was to limit the SRecord size to 32 bytes because the variable "totalL" in the FlashArrayS19() routine was defined as a uint8. The default SRecord size of my image project in CW was 252 which would translate into about twice that many hex digits. I could just as well change the size of "totalL".
3 - The third change was to correct the FTFE command for programming to 0x07 which programs 8 bytes at a time. The example program used a command of 0x06 and programmed 4 bytes at a time which is not defined for my processor.
At this point I get as far as programming the first set of 8 bytes, but the FTFE_STAT afterward has the Read Collision Error bit set and the program halts with a Hard Fault exception. I can, however, use the debugger and step through the Flash_ByteProgram() and successfully program the number of bytes passed in. But of course by that time the USB connection has ended. I've tried disabling/enabling interrupts at various places - at the beginning/end of FlashArrayS19(), at the beginning/end of FlashLineS19(), and at the original location before/after the call to Flash_ByteProgram() but the result has been the same Hard Fault exception after the first 8 bytes are written.
How can I figure out why/when the Read Collision Error is occurring?
Thanks.