/************************************************************ | |
* Percepio Tracealyzer - ITM Trace Exporter for Keil uVision | |
* Copyright (c) 2018, Percepio AB. | |
* https://percepio.com | |
************************************************************/ | |
FUNC void tzSetEnable(int enable) | |
{ | |
if (enable == 1) | |
{ | |
printf("Starting Tracealyzer recorder\n"); | |
// Forward the ITM data to file | |
exec("ITMLOG 1 > .\\tracealyzer.psf"); | |
// Send start command to Tracealyzer (not required if using vTraceEnable(TRC_START)) | |
exec("E CHAR tz_host_command_data = 1, 1, 0, 0, 0, 0, 0xFD, 0xFF"); | |
exec("tz_host_command_bytes_to_read = 8"); | |
} | |
else if (enable == 0) | |
{ | |
printf("Stopping Tracealyzer recorder...\n"); | |
// Send stop command to Tracealyzer, to stop writing ITM data. | |
exec("E CHAR tz_host_command_data = 1, 0, 0, 0, 0, 0, 0xFE, 0xFF"); | |
exec("tz_host_command_bytes_to_read = 8"); | |
_sleep_(2000); // Wait a while to let all data be written the host file. | |
// Stop forwarding the ITM data to file and close the file. | |
exec("ITMLOG 1 OFF"); | |
printf("Tracealyzer recorder stopped.\n"); | |
} | |
else printf("Usage: tzSetEnable(0 or 1), where 0 is disable (stops recorder) and 1 enable (starts recording)"); | |
} | |
// The Tracealyzer ITM stream port for Keil µVision can be used in two ways. | |
// | |
// 1. Start tracing directly from startup. | |
// Make sure tzSetEnable(1) is called below and vTraceEnable(TRC_START) in your target startup. | |
// | |
// 2. Start the trace manually, using the "Start Recording" button in Keil µVision. | |
// In this case, comment out the below call to tzSetEnable and make sure you call vTraceEnable(TRC_INIT) in your target startup (not TRC_START). | |
tzSetEnable(1); | |
DEFINE BUTTON "Start Recording", "tzSetEnable(1)"; | |
DEFINE BUTTON "Stop Recording", "tzSetEnable(0)"; |