Difference between revisions of "MTB specifics"
Line 8: | Line 8: | ||
* No streaming trace possible |
* No streaming trace possible |
||
* A portion of the target RAM may not be used by the application if MTB is used |
* A portion of the target RAM may not be used by the application if MTB is used |
||
+ | |||
+ | = RAM usage = |
||
+ | Most MTBs have a trace buffer between 2 KB and 8 KB. By default, J-Link uses 512 bytes for MTB, starting at the MTB_BASE addr. |
||
= Configuration options provided by J-Link = |
= Configuration options provided by J-Link = |
||
Line 25: | Line 28: | ||
|} |
|} |
||
While the MTB_BASE register is read-only for J-Link, the MTB_POINTER and MTB_MASTER.MASK can be written by J-Link. This allows the MTB RAM usage to be configured. |
While the MTB_BASE register is read-only for J-Link, the MTB_POINTER and MTB_MASTER.MASK can be written by J-Link. This allows the MTB RAM usage to be configured. |
||
+ | |||
+ | == Default J-Link config == |
||
+ | # J-Link reads out MTB_BASE to determine the base addr. of the MTB buffer |
Revision as of 14:13, 9 July 2018
Contents
The ARM Micro Trace Buffer (MTB) is an on-chip trace buffer that allows to do post-mortem instruction trace via a regular J-Link with no need of a specific J-Trace unit. The MTB will use a specific amount of the on-chip RAM to store trace data while the core executes instructions. MTB is mainly used on smaller MCUs like Cortex-M0+/M23/M33 based ones.
Limitations
MTB is a very limited version of trace that has the following limitations:
- Instruction trace support only
- No streaming trace possible
- A portion of the target RAM may not be used by the application if MTB is used
RAM usage
Most MTBs have a trace buffer between 2 KB and 8 KB. By default, J-Link uses 512 bytes for MTB, starting at the MTB_BASE addr.
Configuration options provided by J-Link
An MTB consists of the following registers / bit fields that allow configuration of the MTB and the amount of RAM it uses:
Register / Bit field | Description |
---|---|
MTB_BASE | 32-bit register that specifies the base address of the MTB buffer |
MTB_POINTER | 32-bit register that specifies the offset (rel. to BASE) where the next trace packet will be stored by the HW |
MTB_MASTER.MASK | 5-bit bitfield that specifies the wrap-around point for the auto-inc logic of the MTB, on packet store |
While the MTB_BASE register is read-only for J-Link, the MTB_POINTER and MTB_MASTER.MASK can be written by J-Link. This allows the MTB RAM usage to be configured.
Default J-Link config
- J-Link reads out MTB_BASE to determine the base addr. of the MTB buffer