stlink: fix max SWV baudrate on stlink v3
While stlink v2 anly accept till to 2 MHz for SWV baudrate, stlink v3 accepts up to 24 MHz. Check the stlink version and use the respective max value. Change-Id: I911207a35983b6acf0b901059076dd31f70e6290 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reported-by: Pawel <phryniszak@users.sourceforge.net> Fixes: https://sourceforge.net/p/openocd/tickets/283/ Reviewed-on: http://openocd.zylin.com/5908 Tested-by: jenkins
This commit is contained in:
parent
ba564bda66
commit
1f6efaada0
|
@ -299,6 +299,7 @@ struct stlink_usb_handle_s {
|
|||
|
||||
#define STLINK_TRACE_SIZE 4096
|
||||
#define STLINK_TRACE_MAX_HZ 2000000
|
||||
#define STLINK_V3_TRACE_MAX_HZ 24000000
|
||||
|
||||
#define STLINK_V3_MAX_FREQ_NB 10
|
||||
|
||||
|
@ -2996,17 +2997,20 @@ static int stlink_config_trace(void *handle, bool enabled,
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
unsigned int max_trace_freq = (h->version.stlink == 3) ?
|
||||
STLINK_V3_TRACE_MAX_HZ : STLINK_TRACE_MAX_HZ;
|
||||
|
||||
/* Only concern ourselves with the frequency if the STlink is processing it. */
|
||||
if (enabled && *trace_freq > STLINK_TRACE_MAX_HZ) {
|
||||
if (enabled && *trace_freq > max_trace_freq) {
|
||||
LOG_ERROR("ST-LINK doesn't support SWO frequency higher than %u",
|
||||
STLINK_TRACE_MAX_HZ);
|
||||
max_trace_freq);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
stlink_usb_trace_disable(h);
|
||||
|
||||
if (!*trace_freq)
|
||||
*trace_freq = STLINK_TRACE_MAX_HZ;
|
||||
*trace_freq = max_trace_freq;
|
||||
|
||||
presc = traceclkin_freq / *trace_freq;
|
||||
|
||||
|
|
Loading…
Reference in New Issue