|
|
 |
Can I halt and start the eTPU synchronized to the e200 core, without using the eTPU debugger?
|
| |
Ref: 0420 |
|
When the eTPU debugger is used, synchronized debugging is enabled using the command
TrOnchip.CBI ON
in the eTPU debugger.
Without eTPU debugger, run control can be synchronized to the e200 core by enabling DC[DBE] and DC[CBI] in the NDEDI block. The DC register is accessible through the NEXUS.Register window of the e200 debugger.
Commands for MPC55XX, MPC56XX, SPC56X and MPC5777C:
PER.Set DBG:0x02120202 %Long 0x00006000 ; eTPU_A
PER.Set DBG:0x02120302 %Long 0x00006000 ; eTPU_B
PER.Set DBG:0x02160A02 %Long 0x00006000 ; eTPU_C
Commands for MPC5746R
PER.Set DBG:0x02300202 %Long 0x00006000 ; eTPU_A
PER.Set DBG:0x02300302 %Long 0x00006000 ; eTPU_B
|
|
|
 |
Can the TRACE32 debugger for eTPU read the MTD or the PDCM registers?
|
| |
Ref: 0472 |
|
MTD and PDCM are write-only registers. The eTPU does not support reading write-only registers through JTAG.
The only readable write-only flags are the ones accessible via the Channel Flag Status Register (NDEDI_ENGINEn_CFSR), which are all displayed in the Register window. MTD and PDCM are not included in the CFSR.
|
|
|
 |
Is it possible to access the eTPU microengine process registers (e.g. MatchA/B, CaptureA/B)?
|
| |
Ref: 0471 |
|
The debugger can access ERT and MATCH registers (from Register window). But not the Capture registers.
|
|
|
 |
Some variables can not be displayed while the eTPU is running.
|
| |
Ref: 0362 |
|
eTPU variables can be bound to a context, i.e. even static sariables can have an address which is relative to the channel base address. While the eTPU runs, the current context can not be determined, so the debugger can not display these variables.
There are three ways to configure the debugger to displays those types of variable:
- Generate static copies of the variables for each channel.
- There is a ready-to-use script available in the folder demo\etpu\etc\channelvars.
- Please refer to readme.txt in the same folder for instructions.
- Casting "trick":
- Stop inside a function where this variable is used
- Show the address of that variable in a window "Variable.View %e &event_ref_count"
- Right click on the address and select "Show Constant" from the pulldown
- This will open another window that shows the same variable as typecast from a fixed address (which will remain valid even when the core runs)
- Register.GOTO command:
- Select the scope AND channel base with Register.GOTO, e.g. "Register.GOTO My_eTPU_FUNC <CHBASE>".
- The second parameter is the value of CHBASE for the channel in which you expect the code to run.
It is possible to use the "host" memory access class (H:) to extract this information from the PowerPC side.
- Show the local variable with "Variable.View %e event_ref_count"
- Note: Stopping the core will revert to "normal" display of variables
|
|
|
 |
Trying to debug one of the eTPU cores on my PowerPC CPU, I get "?????" (bus errors) in the List window.
|
| |
Ref: 0473 |
|
Access to program memory requires that both eTPUs are halted. Please check if both are halted.
|