• Not Answered

Can FLASHApi Flash_Erase() failures lock the device?

First, some background.  I am updating a project and hardware which allows updates over the CAN bus.I updated to the latest CCSv5 5.2.0.00069 and v6.1.0 compiler and FlashAPI 3.10 and rts2800_fpu32.lib.  All the code loads to FLASHA and runs from SARAM.  I'm debugging with JTAG.

With this setup, I now get a bunch of linker warnings (which I ignored).  With previous tools I had a clean compile.  

#16002-D build attribute vendor section TI missing in "../Flash28335_API_V210.lib<Flash28_ClearLoop.obj>": compatibility cannot be determined XXXX  C/C++ Problem

My code changes included:

FLASH_ST FlashStatus; // Flash erase status.

status=Flash_Erase(SECTORA,&FlashStatus);

if (STATUS_SUCCESS == status)

which was failing with status=13 which corresponds to STATUS_FAIL_INCORRECT_PARTID

After getting this fault, I made some code changes and now I get the following when I try to debug"

C28xx: Flash Programmer: Warning: The configured device (TMS320F28335), does not match the detected device (). Flash Programming operations could be affected. Please consider modifying your target configuration file.
C28xx: GEL Output:
ADC Calibration not complete, check if device is unlocked and recalibrate.C28xx: GEL Output:
ADC Calibration not complete, check if device is unlocked and recalibrate.C28xx: Flash Programmer: Error erasing flash memory. Device is locked or not connected. Operation cancelled
C28xx: Flash Programmer: Error erasing Flash memory.
C28xx: Flash Programmer: Device is locked or not connected. Operation cancelled.
C28xx: Trouble Writing Memory Block at 0x338000 on Page 0 of Length 0x54
C28xx: GEL: File: F:\Users\XXXXX.out: Load failed.

My Properties/General selects the Device Family: C2000, TMS320F28335 which matches my hardware.

If I connect JTAG to an eZDSP board it connects and downloads fine.

Did I inadvertently lock my device? How do I get rid of the link warnings?

4 Replies

  • When I change the boot mode of the eZDSP to "Branch to check boot mode" and don't have it erase anything during the load. (run from RAM) I can get some code loaded and have it run.  I can also look at the CSM registers and the memory window on FLASHA shows it is not secured and completely erased. (including CSM_PWD locations)

    So I don't think I have bricked my hardware.  However, if I try to erase a flash sector I get the message about:

    C28xx: Flash Programmer: Warning: The configured device (TMS320F28335), does not match the detected device (). Flash Programming operations could be affected. Please consider modifying your target configuration file.

    This is starting to smell like a tool problem. How do I figure out what device CCSv5.2.00069 is detecting???

    When I run SDConfigEx:

    * Checking emulator/eZdsp scan connection

    ** Emulator Test **
    $$ EmuProductName=XDS510USB
    $$ EmuPortAddr=0x510
    $$ EmuPortMode=USB
    $$ ProductId=510
    $$ ProductVersion=84
    ** Emulator Scan Test
    -- Found JTAG IR length of 38
    -- Found 1 JTAG device(s) in the scan chain

    But I don't know how to see the scan test values (and this isn't necessarily the same method used by CCS)


  • When I change the boot mode of the eZDSP to "Branch to check boot mode" and don't have it erase anything during the load. (run from RAM) I can get some code loaded and have it run.  I can also look at the CSM registers and the memory window on FLASHA shows it is not secured and completely erased. (including CSM_PWD locations)

    So I don't think I have bricked my hardware.  However, if I try to erase a flash sector I get the message about:

    C28xx: Flash Programmer: Warning: The configured device (TMS320F28335), does not match the detected device (). Flash Programming operations could be affected. Please consider modifying your target configuration file.

    This is starting to smell like a tool problem. How do I figure out what device CCSv5.2.00069 is detecting???

    When I run SDConfigEx:

    * Checking emulator/eZdsp scan connection

    ** Emulator Test **
    $$ EmuProductName=XDS510USB
    $$ EmuPortAddr=0x510
    $$ EmuPortMode=USB
    $$ ProductId=510
    $$ ProductVersion=84
    ** Emulator Scan Test
    -- Found JTAG IR length of 38
    -- Found 1 JTAG device(s) in the scan chain

    But I don't know how to see the scan test values (and this isn't necessarily the same method used by CCS)


  • In reply to Jerry Trantow:

    As a sanity check on the flash settings, I ran the On-chip flash frequency test and I see the 10khz on the GPIO pin but it only toggles for approximately 35msec???  

    I'm also confused by CSM.  From my reading of the app note, I should see zeros if I try to read flash.  However, when I reset using CCS I see the CSMSCR.SECURE=0 and the flash looks erased.  All FFFF's.  However, if I do a restart the flash memory shows up as all 0's and the CSMSCR.SECURE=1 which makes it look like I bricked my boards???

    What's the definitive test (via CCSv5) for whether a TMS320F28335 is CSM locked?

  • Hi Jerry

    I had a similar problem with a TMS320f28027. After the update of my CCS4.2.4 I`ve got also the message:

    The configured device (TMS320F28027), does not match the detected device (). Flash Programming operations could be affected. Please consider modifying your target configuration file.

    After I exchanged my license I had some problems with the linker. With the message:

    warning: creating output section ".xxx" without a SECTIONS specification

    There where an additional *.cmd-file in my project. I don`t know why.

    After I deleted this file and linked the "DSP280x_Headers_nonBIOS.cmd"  everything worked fine.

    I`m really not an expert in CCS and I don`t know why the way I described work, but perhaps you can also go this way.

    Good luck

    Joachim