diff options
author | Marc Schink <openocd-dev@marcschink.de> | 2016-12-02 15:39:23 +0100 |
---|---|---|
committer | Paul Fertser <fercerpav@gmail.com> | 2019-12-21 19:25:32 +0000 |
commit | 2dc88e1479f29ef0141b05bfcd907ad9a3e2d54c (patch) | |
tree | f52d7ef4e56c734d25f1bf12bed0fe01110c53cb /src/target/cortex_m.h | |
parent | 90bd7d148225efa587d8e62017625709a1ac002d (diff) | |
download | riscv-openocd-2dc88e1479f29ef0141b05bfcd907ad9a3e2d54c.zip riscv-openocd-2dc88e1479f29ef0141b05bfcd907ad9a3e2d54c.tar.gz riscv-openocd-2dc88e1479f29ef0141b05bfcd907ad9a3e2d54c.tar.bz2 |
target/armv7m_trace: Improve SWO frequency auto-detection
The SWO frequency auto-detection with J-Link adapters does not work
properly in the current implementation. This is because the trace layer
has only information about the highest possible SWO frequency supported
by the adapter. With that the trace layer calculates the SWO prescaler
which usually leads to a frequency deviation greater than what is
permitted by J-Link adapters.
Move the calculation of the SWO prescaler from the trace layer into the
trace configuration of the adapter to overcome this problem.
The adapter has the necessary information to choose a suitable SWO
frequency and calculate the corresponding prescaler that complies with
the maximum allowed frequency deviation.
Tested with:
- STM32L152RC Discovery Kit (ST-Link)
- EFM32GG-STK3700 (J-Link)
Change-Id: I38ff2b89d32f0a92c597989b590afe5c75cf4902
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/3903
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Diffstat (limited to 'src/target/cortex_m.h')
-rw-r--r-- | src/target/cortex_m.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/target/cortex_m.h b/src/target/cortex_m.h index 54d7a02..505a09b 100644 --- a/src/target/cortex_m.h +++ b/src/target/cortex_m.h @@ -86,6 +86,9 @@ #define TPIU_FFCR 0xE0040304 #define TPIU_FSCR 0xE0040308 +/* Maximum SWO prescaler value. */ +#define TPIU_ACPR_MAX_SWOSCALER 0x1fff + /* DCB_DHCSR bit and field definitions */ #define DBGKEY (0xA05F << 16) #define C_DEBUGEN (1 << 0) |