This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28P650DK: C28xx_CPU2: Flash Programmer: Error erasing Bank 3 FMSTAT (STATCMD on some devices) value = 65. Operation Cancelled (0).

Part Number: TMS320F28P650DK

Tool/software:

got following error when try to program to flash, flash bank are configured correctly for both cpu1 (bank 0,1,2) and cpu2 (bank 3,4), both are correct in actual code and program config, this is led example project, nothing been modified.

C28xx_CPU1: GEL Output: 
Memory Map Initialization Complete
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: 
 CPU2 is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. User code execution from SR could commence after the selected CPU1/CPU2 flash banks executable are programmed.
C28xx_CPU1: Only CPU1 on-chip Flash Plugin can configure clock for CPU1, and CPU2 Flash operations. Plugin automatically configures PLL when CPU1 Flash operations are invoked. However, if users want to do only CPU2 Flash operations without doing a prior CPU1 operation in the current session, they should click on 'Configure Clock' button in CPU1's on-chip Flash Plugin before invoking CPU2 Flash operations. When this button is used, Flash Plugin will configure the clock for CPU1/CPU2 at 200MHz using INTOSC as the clock source. Plugin will leave PLL config like this and user application should configure the PLL as required by application.
C28xx_CPU1: Before doing any flash operations using the flash plugin, (a) Please select which flash banks should be mapped to which CPU (CPU1 vs CPU2) - This selection should be done in CPU1 flash plugin GUI. (b) Please select the flash banks that the user would like the flash plugin to erase (in the CPU1 flash plugin GUI and the CPU2 flash plugin GUI)
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: 
 CPU2 is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: 
 CPU2 is out of reset and configured to wait boot.
 (If you connected previously, may have to resume CPU2 to reach wait boot loop.)
C28xx_CPU1: GSxMSEL register configured correctly
C28xx_CPU1: BankMuxSel register configured correctly
C28xx_CPU2: GEL Output: 

RAM initialization done

C28xx_CPU2: GEL Output: 
Memory Map Initialization Complete
C28xx_CPU2: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. User code execution from SR could commence after the selected CPU1/CPU2 flash banks executable are programmed.
C28xx_CPU2: Only CPU1 on-chip Flash Plugin can configure clock for CPU1, and CPU2 Flash operations. Plugin automatically configures PLL when CPU1 Flash operations are invoked. However, if users want to do only CPU2 Flash operations without doing a prior CPU1 operation in the current session, they should click on 'Configure Clock' button in CPU1's on-chip Flash Plugin before invoking CPU2 Flash operations. When this button is used, Flash Plugin will configure the clock for CPU1/CPU2 at 200MHz using INTOSC as the clock source. Plugin will leave PLL config like this and user application should configure the PLL as required by application.
C28xx_CPU2: Before doing any flash operations using the flash plugin, (a) Please select which flash banks should be mapped to which CPU (CPU1 vs CPU2) - This selection should be done in CPU1 flash plugin GUI. (b) Please select the flash banks that the user would like the flash plugin to erase (in the CPU1 flash plugin GUI and the CPU2 flash plugin GUI)
C28xx_CPU2: GSxMSEL register configured correctly
C28xx_CPU2: Flash Programmer: Error erasing Bank 3 FMSTAT (STATCMD on some devices) value = 65. Operation Cancelled (0).
C28xx_CPU2: File Loader: Memory write failed: Unknown error
C28xx_CPU2: GEL: File: /Users/lsi/Documents/workspace/led_ex1_c28x_dual_blinky_cpu2/CPU2_FLASH/led_ex1_c28x_dual_blinky_cpu2.out: Load failed.

  • Hi Leo,

    Before loading the CPU2 LED application were you able to press the 'Configure Clock Button' in CPU1 On-Chip Flash tool GUI?

    Flow is as follows loading programs:

    - Set CPU1 Flash Settings in On-Chip Flash tool

    - Set CPU2 Flash Settings in On-Chip Flash tool

    - Load CPU1 Application Image

    - Press 'Configure Clock' button in On-Chip Flash tool

    - Load CPU2 Application Image

    Thanks and regards,

    Charles

  • Hi Charles,
    thanks for replying, I can't find that button, the only thing I found is in run -> run configurations -> Target -> flash settings, I did see clock/pll settings on the top(can't change, all grey out), and explicit mentioning of the "on-chip flash plugin gui". But nowhere to find! 
    BTW I am running latest ccs for macos

    Leo
     

  • Hi Leo,

    The 'Configure Clock' button is within the CPU1 On-Chip Flash Tool settings (from the CCS Toolbar, Tools-> On-Chip Flash). 

    Thanks and regards,

    Charles

  • Hi Charles,
    I found that, only exists in a live debug view stopping at breakpoint. Given that if anything fails, it exits debug view instantly, I have to go through the following:
    1. set to program ram on cpu1
    2. stop at break point on cpu1
    3. click configure clock button in the on chip flash tool
    4. select cpu2
    5. stop cpu2 since it is running
    6. select the cpu2 *.out image using a tiny drop down menu next to the load button
    7. click load
    8. now program the [flash] on cpu1 so both cpu are flash programmed

    this is just too much hassle for a demo program,
    Leo