Hello,
I have a problem with the CCS debugger (Version: 5.5.0.00077) while testing a software designed on a TMS570LC4357 device.
The good case:
In the software there is a function which resets the system by writing 0x8000 to the register SYSECR. It works just fine. Usually for test purpose I can move the PC to this function, and step till the write access instruction
STR R1, [R0] where R1 is 0x8000, and R0 is 0xFFFFFFE0.
Step 1: I click the step button while the PC points to this STORE instruction, the system will be reset, and the PC is set to 0x0.
Step 2: After the reset the debugger connection to the ECU is still available, and I can check any CPU register or module configuration register without any problem.
Since a few days I experience some unexpected behavior.
Test 1. On ECU_1 (designed for project A, using TMS570LC4357 device), I loaded software A, and can get the good case as described above.
Test 2. On ECU_2 (designed for project B, using TMS570LC4357 device), I loaded software B, using the same hardware (emulation, JTAG, Power etc.) except the ECU. If I start the step 2, the connection to the ECU is lost. I can’t check any register. Even if I terminate the debug session, it seems that the SW is not running since the current draw stays at a low level (normal level is 450mA, and in error case 350mA). After terminating the debug session, I can’t re-start the debug because the connection can’t be created. Now I power on reset the ECU, the SW runs again (current draw 450mA). I had run the test before using ECU2 and SW B and had no problem at step 2. I wonder why the problem now occurs.
Test 3. To exclude the possibility that a defect ECU2 causes the problem, I run the test describe above in Test 2 with ECU3 (designed for project B, using TMS570LC4357 device) and SW B. The same error occurs (connection lost and can’t be reconnected, SW stays with low current consumption).
Here are a few screen shots in Test 2.
Before the reset instruction:
The Disassembly window:
The Debug window:
The console output:
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
After the reset instruction:
The Debug window:
The console output:
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset
CortexR5: Warning: Error 0x60002060/-1045 Error during: Execution, Initialization, Control, Device driver: Cannot release emulator process.
CortexR5: Warning: Error 0x60002060/-1044 Error during: Execution, Initialization, Control, Device driver: Cannot acquire emulator process Possible conflict for device driver usage
CortexR5: Unable to determine target status after 20 attempts
After ECU power on reset, try to connect to the ECU:
I get the following error message:
And in the console window:
Dap: Error connecting to the target: Error 0xC0002240/-5008 Error during: Initialization, OCS, Control, Unknown Error
It seems that the SW enters an endless reset loop after the reset instruction is executed. Because of this reset loop, the debugger / JTAG can’t be connected.
As mentioned above, I had done such test before and had no problem. Now with the hardware and software, it doesn’t work any more.
Could you please give some advice?
Thank you very much!
Libo