Hello,
I'm having issues programming a TMS570LS20216 on a custom board. Really, it fails when erasing flash, prior to the actual programming. I'm using a Blackhawk, XDS100v2 Emulator and have tried erasing on the following:
- Code Composer Studio Version 6.0.0.00190 (Hercules Emulation 6.0.2) on Ubuntu 14.04, 64-bit
- Uniflash version 3.0.0.00031 on Ubuntu 14.04
- CCS version 5.2.1.00018 (Hercules Emulation 5.2.0.0) on a Windows 7, 64-bit, virtual machine (vmware)
I have been able to program the device a few times without issues, but as of this writing each attempt causes the problem described below.
Issue description
Here's a description of what I experience with either of the platforms listed above: When erasing flash it gets stuck on a specific bank/sector. If I attempt to erase the flash again, multiple times, it remains stuck on the same bank/sector but it will eventually get "unstuck" and continues erasing subsequent sectors. Usually it'll get stuck again on other sectors. Getting past each of those requires multiple attempts at erasing too. When it finally gets through to the end, programming the device is not an issue. However, if I want to erase and program the device again, the same problem persists.
Error messages
After hitting the bug icon in CCS, it'll display the output below followed by a dialog window stating: "Load program Error. File /path/to/project/Release/prog.out: Load failed"
CCS Console Output while erasing/programming
CortexR4: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR4: Writing Flash @ Address 0x00000000 of Length 0x00005FB8 CortexR4: Erasing Flash Bank 0, Sector 0 CortexR4: Erasing Flash Bank 0, Sector 1 CortexR4: Erasing Flash Bank 0, Sector 2 CortexR4: Erasing Flash Bank 0, Sector 3 CortexR4: Erasing Flash Bank 0, Sector 4 CortexR4: Erasing Flash Bank 0, Sector 5 CortexR4: Erasing Flash Bank 0, Sector 6 CortexR4: Erasing Flash Bank 0, Sector 7 CortexR4: Erasing Flash Bank 0, Sector 8 CortexR4: Erasing Flash Bank 0, Sector 9 CortexR4: Erasing Flash Bank 1, Sector 0 CortexR4: Erasing Flash Bank 1, Sector 1 CortexR4: Erasing Flash Bank 1, Sector 2 CortexR4: Erasing Flash Bank 1, Sector 3 CortexR4: Erasing Flash Bank 2, Sector 0 CortexR4: Erasing Flash Bank 2, Sector 1 CortexR4: Erasing Flash Bank 2, Sector 2 CortexR4: Flash Programmer: Error erasing Bank 2, Sector 2. Operation Cancelled. CortexR4: Error Writing Flash @ Address 0x00000000 of Length 0x00005FB8 CortexR4: Unable to terminate memory download: NULL buffer pointer at 0x3a9f CortexR4: GEL: File: /path/to/project/Release/prog.out: Load failed.
Partial prog.map
****************************************************************************** TI ARM Linker Unix v5.1.5 ****************************************************************************** >> Linked Thu Jul 10 15:43:18 2014 OUTPUT FILE NAME: <prog.out> ENTRY POINT SYMBOL: "_c_int00" address: 00005388 MEMORY CONFIGURATION name origin length used unused attr fill ---------------------- -------- --------- -------- -------- ---- -------- VECTORS 00000000 00000020 00000020 00000000 X ffffffff FLASH0 00000020 0007ffe0 00005f98 0007a048 R X (ffffffff) FLASH1 00080000 00080000 00000000 00080000 R X (ffffffff) FLASH2 00100000 00080000 00000000 00080000 R X (ffffffff) FLASH3 00180000 00080000 00000000 00080000 R X (ffffffff) ECC_VEC 00400000 00000010 00000010 00000000 RWIX ECC_FLA0 00400010 0003fff0 0003fff0 00000000 RWIX ECC_FLA1 00440000 00040000 00040000 00000000 RWIX ECC_FLA2 00480000 00040000 00040000 00000000 RWIX ECC_FLA3 004c0000 00040000 00040000 00000000 RWIX STACKS 08000000 00001500 00000000 00001500 RW RAM 08001500 00026b00 000003d8 00026728 RW SEGMENT ALLOCATION MAP run origin load origin length init length attrs members ---------- ----------- ---------- ----------- ----- ------- 00000000 00000000 00005fb8 00005fb8 r-x 00000000 00000000 00000020 00000020 r-x .intvecs 00000020 00000020 00005990 00005990 r-x .text 000059b0 000059b0 00000470 00000470 r-- .const 00005e20 00005e20 00000198 00000198 r-- .cinit 00400000 00400000 00100000 00100000 r-- 00400000 00400000 00000010 00000010 r-- .ecc0 00400010 00400010 0003fff0 0003fff0 r-- .ecc1 00440000 00440000 00040000 00040000 r-- .ecc2 00480000 00480000 00040000 00040000 r-- .ecc3 004c0000 004c0000 00040000 00040000 r-- .ecc4 08001500 08001500 000003d8 00000000 rw- 08001500 08001500 00000238 00000000 rw- .bss 08001738 08001738 000001a0 00000000 rw- .data