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.
Hello,
I'm new to F28M35x series devices and I had been programming above Concerto control card hundred of times without any issue. Few weeks ago, loading program error occurred when programming C28x processor in flash mode. After that same error occurred and I used a new control card after that. Today the second one also gave the same error and not able to program C28x after that in any way.
Following are noted,
1. Arm-M3 processor work fine, without any issue and can be programmed
2. Attempted erasing flash of C28x using both CCS & UniFlash, both were unsuccessful
3. Always give the error code 1156 @ 0x8050, Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device.
It would be very helpful if you can provide a solution to this since total project is at stuck due to this
Thanks,
Tharindu
Tharindu,
1) Did you get this error when you try to connect the debugger to the C28x core or when you try to erase or program the C28x Flash?
2) On the failing devices, if you are able to connect, can you check whether you are able to read the flash contents in the memory window or not?
3) Did you program any security settings in the Flash? Check the map file to see if anything is allocated to the security fields in Flash. If not as a part of the coff file, did you try to program any security fields in Flash via Flash Plugin GUI?
Also, keep M3 connected and halted when you try C28x operations.
Thanks and regards,
Vamsi
Hello Vamsi,
1.) I am able to connect to C28x after loading a program into Arm-M3 and hold it. However, I cannot load *.out to C28x or erase flash or C28x after that due to same error. I am able to erase Arm-M3 flash without any issue.
2.) Can you tell me how to read the flash content using CCS?.In the Memory-Browser, program memory filled with all 0x0000 from address 0x0000 to 0x7ff and error shows 'Error:Memory map prevented reading' after address 0x7ff. However, for both IO & Peripheral memories there is an error shows 'Error:Memory map prevented reading' . Also, Data memory can be read without issue.
3.) No, I didn't tamper with any security setting. I don't know how to check the map file. In the 'On-chip flash' section of C28x, all security settings are shown 0xFF... . I don't know whether they are the actual values in the flash or values to be programmed using GUI.
Thanks,
Tharindu
Hello Vamsi,
No, I don't use flash API in my program.
#3: I couldn't find any 'flash security field address locations' section in *.map file which is attached herewith. Can you look into that?
#2. Can you tell me how to check flash memory? I was able to check RAM memories using 'Memory-browser' in debug mode. There is no flash section in the memory browser window.
Thanks,
Tharindu
Tharindu,
I don't think loose JTAG is the problem here - but you need to fix it for reliable connection/data transfer.
A clean erase or program should not cause any issue - only a power failure can cause this kind of issues (if not your application loading something to security fields).
I checked your map file. You did not initialize the password - which is fine.
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
PAGE 0:
FLASH_EXE_ONLY_P0 0013fff2 00000002 00000000 00000002 RWIX
ECSL_PWL_P0 0013fff4 00000004 00000000 00000004 RWIX
CSM_PWL_P0 0013fff8 00000008 00000000 00000008 RWIX
Thanks and regards,
Vamsi
Tharindu,
I tried to use the F28M35x C28x CCS Flash Plugin selecting "Program Only" option and "Selected Sectors Only" option (deselected all the sectors). And I did not see any erase happening (confirmed with console window messages as well) - Ofcourse, I erased entire Flash by clicking the Erase button before I did this, since I need to erase the existing content in the Flash before I can reprogram.
You can select "Enable Verbose Output" available at the bottom of the CCS Flash Plugin and click on "Remember My Settings" button. This will give you more details in the console window - you can check whether erase operation is performed or not.
Can you try this and confirm?
Also, which CCS version are you using?
Regarding your questions:
#1. I don't think the issue is due to emulator firmware upgrade - however, I did not use that emulator for checking this. Can you check if there is any dip in the voltage lines (make sure it is in DS spec range) when you perform the Flash load?
#2. Try with my above suggestions and see if that helps.
#3: I will ask the corresponding expert to reply you on this.
Based on your reply, I will ask our security expert to take a look at this.
Thanks and regards,
Vamsi
Also, you may have noticed below note in DS:
It is important to maintain a stable power supply during the entire flash programming process. It is conceivable that device current consumption during flash programming could be higher than normal operating conditions. The power supply used should ensure VMIN on the supply rails at all times, as specified in the Recommended Operating Conditions of the data sheet. Any brown-out or interruption to power during erasing/programming could potentially corrupt the password locations and lock the device permanently. Powering a target board (during flash programming) through the USB port is not recommended, as the port may be unable to respond to the power demands placed during the programming process.
Thanks and regards,
Vamsi
Hello Vamsi,
Also in the info sheet of the control card following boot mode configurations are given.
I found it hard to understand the difference of C28x boot mode since 'Master' & 'M3' is same in F28M35xx. Therefore what maybe the difference in 'Boot from M3' and 'Boot from Master' in the above table?
Thanks
Tharindu,
You will find erase button in the CCS Flash Plugin GUI (CCS Debug view -> Tools -> On-Chip Flash). Should be at the bottom of the list of sectors provided for select/deselect.
When you enable verbose output, please take a look at the console window for the detailed messages. It is ok even if the flashing fails - just provide us the console window messages.
Also, as I requested, please provide Debug server logs as well.
Look at section 5.4 Recommended Operating Conditions in datasheet (www.ti.com/.../f28m35m52c.pdf) for operating voltage range.
I believe you can load to unsecure RAM.
Did you check for updates in CCS and install if any?
Thanks and regards,
Vamsi
Tharindu,
Also, I was able to program to the RAM of the locked device and run the code. Is this possible on a permanent locked device?
Which RAMs you are using? If it's non-secure RAM then ok but secure RAM should be inaccessible if device is permanently locked.
Regards,
Vivek Singh
Vamsi,
I cannot risk another ControlCard while trying to program flash. Therefore I've done following using locked one. Following are the steps I followed,
* Note that I've used 'Erase & Program' flash setting in following tests.
1. Load flash program to M3 and didn't run it.
2. Connect to C28x in debug view
3. Go to on chip flash menu and click 'Erase' button
* I cannot copy the consol logs since CCS report Error 1156 and when respond to that CCS will crash. Therefore, I've attached a screenshot prior to crash and DS log also attached.
Following are the consol window messages and DS logs when I try to program blink example to C28x flash,
Cortex_M3_0: GEL Output: Memory Map Initialization Complete C28xx_0: GEL Output: Memory Map Initialization Complete C28xx_0: GEL Output: RAM Initialization Complete C28xx_0: Trouble Setting Breakpoint with the Action "Remain Halted" at 0x80e3: (Error -1066 @ 0x80E3) Unable to set/clear requested breakpoint. Verify that the breakpoint address is in valid memory. (Emulation package 6.0.407.3) C28xx_0: Breakpoint Manager: Retrying with a AET breakpoint C28xx_0: Can't Run Target CPU: (Error -1156 @ 0x8050) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 6.0.407.3) C28xx_0: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.407.3) C28xx_0: Trouble Halting Target CPU: (Error -1135 @ 0x8050) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 6.0.407.3) C28xx_0: Error: (Error -1135 @ 0x8050) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 6.0.407.3) C28xx_0: Unable to determine target status after 20 attempts C28xx_0: Failed to remove the debug state from the target before disconnecting. There may still be breakpoint op-codes embedded in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue debugging C28xx_0: Error occurred during flash operation: Cannot disable hardware breakpoint while the target is halted. Halt the target and try again C28xx_0: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not read 0x00004400@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not read 0x00004402@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not read 0x00004406@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00000@Program: target is not connected C28xx_0: Error occurred during flash operation: Cannot enable while the target is disconnected C28xx_0: Error occurred during flash operation: Could not read 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Failed to run target while trying to execute pwrite_dis.alg C28xx_0: Flash operation timed out waiting for the algorithm to complete. Operation cancelled. C28xx_0: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00004E26@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not read 0x04E26@Program: target is not connected C28xx_0: Flash Programmer: Unable to acquire the clock semaphore. The other core might still be accessing the clock registers. Operation Cancelled. C28xx_0: File Loader: Memory write failed: Unknown error C28xx_0: GEL: File: E:\TI_HybridInverter_Workspace\TI_Hybrid_Inv_Workspace_2\blinky_dc_c28\Flash\blinky_dc_c28.out: Load failed. C28xx_0: Error occurred during flash operation: Could not read register PC: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00004000@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00000@Program: target is not connected C28xx_0: Error occurred during flash operation: Cannot enable while the target is disconnected C28xx_0: Error occurred during flash operation: Could not read 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Failed to run target while trying to execute pwrite_en.alg C28xx_0: Flash operation timed out waiting for the algorithm to complete. Operation cancelled. C28xx_0: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not write 0x00004E26@Data: target is not connected C28xx_0: Error occurred during flash operation: Could not read 0x04E26@Program: target is not connected C28xx_0: Flash Programmer: Unable to acquire the clock semaphore. The other core might still be accessing the clock registers. Operation Cancelled. C28xx_0: Error occurred during flash operation: Could not write register PC: target is not connected
Thanks,
Tharindu
Hello Vamsi,
It's okay, I was working on some other issues. Also, I've found another thing. The F28M35x_CSMPasswords.asm linked with my project is v110 version and the *.cmd file I used seems to be taken from C:\ti\controlSUITE\development_kits\HV_SOLAR_DC_AC_v1.1\Solar_HV_DCAC_Concerto_SCI_Rev_0\c28\F28M35x_common\cmd .
Can that be an issue?
Also, I've currently programming the flash locked F28M35 control card using a modified version of v210 F28M35x_generic_C28_RAM.cmd which is attached herewith. Please note that I've used shared RAMs for some program sections. Can you check and tell me is it okay to use the modified *.cmd currently using?
Thanks
Tharindu,
I feel like you can start another thread since you are using RAM based linker now.
It helps to support you better and also helps others that navigate through the forum.
Please start a new thread.
Thanks and regards,
Vamsi