»
技术讨论区 » 咨询一下STM32的printf输出到SWD口
|
  
|
咨询一下STM32的printf输出到SWD口
一个欧洲的Versaloon用户提出一个很有意思的调试方法,据说在IAR下,可以吧printf的输出信息重定向到SWD接口,调试时直接可以在IDE的界面中显示。
有人知道是怎么实现的吗? |
|
|
|
|
|
|
|
|
  
 
|
3楼
发表于 2010-1-14 23:38
| 只看该作者
异步跟踪输出脚(TRACESWO)和TDO是复用的,它只能在SWD模式下使用,关键是printf的输出信息重定向到异步跟踪输出脚(TRACESWO),也就是说TRACESWO怎样才能使用。
|
|
|
|
|
|
|
|
|
  
 
|
4楼
发表于 2010-1-14 23:59
| 只看该作者
29.17.10 配置的例子
● 设置Debug Exception and Monitor Control 寄存器的TRCENA位;
● 在TPIU Current Port Size寄存器中写入期望值(默认是0x1,指示端口长度为1bit);
● 向TPIU Formatter and Flush Control寄存器中写入0x102(默认值);
● 写TPIU Select Pin Protocol寄存器,选择同步或异步模式。例如写0x2选择NRZ编码的异步模式(类似URAT);
● 向DBGMCU Control寄存器写入0x20(置位IO_TRACEN),为异步模式分配TRACE的I/O口。此时TPIU将发出一个同步包(FF_FF_FF_7F);
● 配置ITM并且写ITMStimulus寄存器输出数据。 |
|
|
|
|
|
|
|
|
  
|
5楼
发表于 2010-1-15 02:49
| 只看该作者
已经确认,软件实现并不复杂,实现一个putc,吧数据赋值给SWO的相关寄存器就可以了。
调试工具也只是需要把SWO接到UART的RX脚就可以了,实现一个简单的CDC就能实现这个功能。 |
|
|
|
|
|
|
|
|
  
|
7楼
发表于 2010-1-16 19:30
| 只看该作者
| 呵呵,还是有一些意义的,IAR和MDK都有这个功能,调试时直接在GUI中显示实时星系信息 |
|
|
|
|
|
|
|
|
  

|
8楼
发表于 2010-1-16 20:10
| 只看该作者
| 调试大一点的软件的时候,这个功能应该还是很有意义的 |
|
|
一点一滴,积沙成山
|
|
|
|
|
|
  
 
|
9楼
发表于 2010-1-16 21:51
| 只看该作者
已经确认,软件实现并不复杂,实现一个putc,吧数据赋值给SWO的相关寄存器就可以了。
调试工具也只是需要把SWO接到UART的RX脚就可以了,实现一个简单的CDC就能实现这个功能。 ...
simonqian 发表于 2010-1-15 02:49 
明白了,你的意思是说把SWO接到UART的RX脚,然后在串口调试器或MDK或IAR来查看信息而不占用原来的USART口? |
|
|
|
|
|
|
|
|
  
|
10楼
发表于 2010-1-18 01:40
| 只看该作者
是的,可惜偶的VersaloonRC5版本不支持这个了
正式版本中会增加这个功能,目前已经实现的功能包括STM32_JTAG/SWD调试,STM32_ISP下载,STM8_SWIM下载,STM8的调试功能还在和ST谈。之后会增加STM32的SWO的Trace功能。
为什么这里的论坛还能开?
不是所有的论坛,包括技术论坛都要关闭吗? |
|
|
|
|
|
|
|