Part Number: TMS320F28377D
Other Parts Discussed in Thread: UNIFLASH,
Tool/software: Code Composer Studio
Hi,
We have been using CCS version 8.1 for a number of years and have used it over several issues of a proprietary board using a TMS320F28377D with an XDS200 emulator. With the latest issue of this board however, CCS fails to program the device. Note that both CCS version 9.1 and Uniflash version 5 work correctly with the new board. However, we are reluctant to change to using CCS 9.1 as we will no longer be able to use XDS510 emulators of which we have several.
Using the same project that works without issue on previous issues of the board, CCS 8.1 completely fails to program the device on the new issue of the board. The error messages that were output for the new board are:
C28xx_CPU1: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
C28xx_CPU1: File Loader: Verification failed: Values at address 0xBD5EC@Program do not match Please verify target memory and memory map.
C28xx_CPU1: GEL: File: xxxxx.out: a data verification error occurred, file load failed.
By 'one or more' I suspect that CCS believes all sections are not in writable memory because there appears to be no attempt to program flash at all.
I used CCS's verbose logging feature and ran tests on old and new boards to attempt to find the issue. I did identify an difference which I believe explains the problem but I would like further explanation. The relevant bits of the log file for old and new boards are:
Old board 1 (works):
FLASH I: FlashC2000F021 Constructor - Device ID: 0x00771553
FLASH I: FlashC2000F021 Constructor - Part Revision: 0x00000003
FLASH I: FlashC2000F021 Constructor - Config File: F2837xD.CPU1.xml
Old board 2 (works):
FLASH I: FlashC2000F021 Constructor - Device ID: 0x00771553
FLASH I: FlashC2000F021 Constructor - Part Revision: 0x00000003
FLASH I: FlashC2000F021 Constructor - Config File: F2837xD.CPU1.xml
New board 1 (does not work):
FLASH I: FlashC2000F021 Constructor - Device ID: 0x00771820
FLASH I: FlashC2000F021 Constructor - Part Revision: 0x00000003
FLASH I: FlashC2000F021 Constructor - Config File:
New board 2 (does not work):
FLASH I: FlashC2000F021 Constructor - Device ID: 0x00771820
FLASH I: FlashC2000F021 Constructor - Part Revision: 0x00000003
FLASH I: FlashC2000F021 Constructor - Config File:
On the two old boards (which CCS works okay with) there is a valid 'config file' found whereas on the two new boards (which CCS does not work with) there is no config file. The difference seems to be the reported 'Device ID'.
This device ID is NOT the same as the published device ID (found by reading 0x0005D00A (PARTIDH)). Note that the published device ID's of both devices are identical, as is the silicon revision (noted above).
My conclusion was that the device ID reported by the device is not known by CCS 8.1 (but is known by CCS 9.1 and Uniflash) and therefore CCS is not aware of the flash on the device and assumes there is no flash.
My questions are:
- Is this the correct cause of the programming issue?
- What does this device ID represent?
- Why has the device ID changed?
- Will some future device ID change mean that CCS 9.1 and/or Uniflash will no longer program new devices?
Thanks,
Richard.