Capturing the ELA trace data
- In this debug scenario, the core halts because the ELA-600 Trigger State 0 is programmed to send a halt request. This halt request occurs when the memory at address 0xB1000000 is corrupted. We corrupt the memory by performing a Debug Access Port (DAP) Advanced eXtensible Interface Access Port (AXI-AP) write to address 0xB1000000 and 0xB1000004 of 0xFFFFFFFF.
To perform these writes, run the corrupt_mem.ds Arm DS script mentioned in the preceding section. When the corrupt_mem.ds script is executed, the core is running. When the script has completed execution, the core halts.
- Navigate to: Scripts view > Use case > Scripts in <path to Arm Development Studio Workspace>\DTSLELA-600\ > ela_control.py > Stop ELA-600.
- Right-click on Stop ELA-600 and select Run ela_control.py::Stop ELA-600.
Stop ELA-600 stops the ETR by default. If your board does use an ETR as the ELA-600 trace sink, you must:
- Right-click ela_control.py::Stop ELA-600 and select Configure.
- Untick Stop the connected trace sinks when the ELA-600 stops.
- Stop the trace sink manually or add DTSL code to the Stop ELA-600 use case script to stop the trace sink.
- Navigate to: Scripts view > Use case > Scripts in <path to Arm Development Studio Workspace>\DTSLELA-600\ > ela_process_trace.py > Decompress and decode ELA trace.
- Right-click on Decompress and decode ELA trace and select Configure.
- Under the General tab, select Decompress and decode trace.
- Select either Output to screen or Output to file… . If there is large amount of trace data, select Output to file… and provide a file path and name.
- Under the Decode tab, set ELA trace mapping file to axi_interconnect_mapping.json in the DTSLELA-600 project.
Note: If you are using your own JSON file, in ELA trace mapping file, enter the JSON file path and name.
- Under the Signal groups section, set State 0 and State 1 to 0.
When the preceding steps are finished, the Decode tab looks like the following:
- Click Apply and OK.
- Right-click on Decompress and decode ELA trace and select Run ela_process_trace.py::Decompress and decode ELA trace.
Stop the ELA:
Dump and decode the ELA trace:
Result: If you select Output to screen in the General tab, the decompressed and decoded trace data appears in the Arm DS Commands view.
If you select Output to file... in the General tab, the decompressed and decoded trace appears in text format in the path and file you specify.