Hi,
I am trying to understand SWO on iMXRT1021 (100pin package).
AD_B0_04 is JTAG_TDO which is SWO.
AD_B0_11 is ARM_CM7_TRACE_SWO.
Are they the same?
If they are different, what are they both for?
Thanks,
Chris.
Hello Chris,
These two signals are not the same. The ARM SWO trace pin allows sending trace messages to the host. One common usage is to send debug or other messages to the host. SWO only needs a single pin, works only with SWD (not JTAG) and requires little code and resources on the target. To learn more about this pin you can refer at the following link: Tutorial: Using Single Wire Output SWO with ARM Cortex-M and Eclipse | MCU on Eclipse
Have a great day,
Victor
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Victor,
Thankyou. I have read that information. But I am still curious to know what the two pins do if they are both SWO!
Chris.
Hi Chris,
ARM SWO works only with SWD, not with JTAG. SWD and JTAG are different debug interfaces. The difference between these two pins is that one is compatible with JTAG and the other one with SWD.
Have a great day,
Victor
Hi Victor,
I think I am being incredibly stupid here, but I still don't understand which pin is for which.
So they both perform the SWO function, but are for use with different Debug Interfaces?
Please confirm ARM_CM7_TRACE_SWO is used with SWD?
JTAG_TDO?, is that SWO?, it cannot be SWO if the JTAG is being used because it is TDO? So when _can_ it be used as SWO?
Maybe it would be helpful to see a table of debug interfaces, e.g.
SWD
SWCLK = pinA or pinB
SWDIO = pinC or pinD
SWO = pinE or pinF
JTAG
TDI = pinA
TDO = pinB
TCK = pinC
TMS = pinD
SWO = pinE (but this is TDO??)
TRACE
TRACECLK = pinA
TRACED0 = pinB
TRACED1 = pinC
TRACED3 = pinD
TRACESWO = PinE
Thanks,
Chris.
Hi Chris,
Please see the following community document: Design Considerations for Debug. Here you will find a more detailed explanation. Keep in mind that SWO is also known as SWV, in the document I mentioned they reference as SWV for this signal.
Best Regards,
Victor