[STM32F1] 有SWO测试能用的例子吗?

[复制链接]
 楼主| z_no1 发表于 2016-8-17 11:52 | 显示全部楼层 |阅读模式
我找了JLINK官方的例子,在板上试了可以,然后压缩打包后,今天拿出来用,就停在
void SWO_PrintChar(char c) {
  //
  // Check if ITM_TCR.ITMENA is set
  //
  if ((ITM_TCR & 1) == 0) {
    return;
  }
  //
  // Check if stimulus port is enabled
  //
  if ((ITM_ENA & 1) == 0) {
    return;
  }
  //
  // Wait until STIMx is ready,
  // then send data
  //
   while ((ITM_STIM_U8 & 1) == 0);
  ITM_STIM_U8 = c;
}


while ((ITM_STIM_U8 & 1) == 0);不动了。
有知道如何解决的吗?
mmuuss586 发表于 2016-8-17 12:36 | 显示全部楼层
ITM_STIM_U8
那你看下这里哪里定义的,在做哪些操作,为什么没执行,找找原因,总能找到的
icecut 发表于 2016-8-17 12:58 | 显示全部楼层
swo 调试用2根线,加输出是不是用三根线?记不清了....你要确认的东西有点多
 楼主| z_no1 发表于 2016-8-17 13:53 | 显示全部楼层
SWO使用时要不要使能或初始化啊?有的代码里有初始化的代码,反正没效果。jlink官方的就上面的简单几行,以前测试是通过的。能看到数据。
 楼主| z_no1 发表于 2016-8-17 14:33 | 显示全部楼层
试了一下,STLINKII可以,JLNK8不行,估计是软件版本太低?
 楼主| z_no1 发表于 2016-10-18 11:50 | 显示全部楼层
试了很久,按上面的会有时能发送,有时不能发送,按STM32F10XXX参考手册的P749,跟踪引脚也是需要设置的。
设了以后就一直稳定输出了。

  DBGMCU->CR = DBGMCU->CR & ~((uint32_t)3<<6);
   DBGMCU->CR = DBGMCU->CR | ((uint32_t)1<<5);

gowow 发表于 2016-10-18 12:31 | 显示全部楼层
用RTT吧,jlink-OB也能用,又不用多接swo线,很方便
 楼主| z_no1 发表于 2016-10-18 13:43 | 显示全部楼层
怎么用呢?给个链接?
 楼主| z_no1 发表于 2016-10-18 15:33 | 显示全部楼层
算了,不折腾了,看了下,RTT只有JLINK支持,STLINK不支持。那就不用了,反正我觉得SWO的速度能满足我的需求了,我就是用它打印出错信息而已。
 楼主| z_no1 发表于 2016-11-18 17:19 | 显示全部楼层
在使用SWO的过程中,发现会丢数据,一般是输出字符串的开始丢失。如果把swo设置里的prescaler 设置低点,会好点,我设到了输出始终0.75M,但有时还是丢.要把PC SAMPIING的 prescaler 设为最低 64×1,然后使能periodic period 算出来的时间是888.0ns,等于采样频率 1.12M,host buffer size 我设为了1M.基本不丢数据了。
 楼主| z_no1 发表于 2016-11-21 11:58 | 显示全部楼层
又试了一下,用JLINK V8+jlink440配MDK474,不丢数据,但在2进制模式下隔1秒左右有0x00,或0x08的数据出来,使得终端模式前面不对齐,
用stlinkii的自带软件和MDK都不会有这个问题。回头找JLNKK V9试下。
 楼主| z_no1 发表于 2016-11-23 21:53 | 显示全部楼层
买的JLINK V9.4就不需要做这些设置,默认也不丢数据了。
 楼主| z_no1 发表于 2017-3-8 22:45 | 显示全部楼层
有对RTT和SWO做对比测试,不是很完全,
SWO 要占用一个管脚,这样SPI3就不能用了,RTT不用,
RTT要占用默认1K 字节的RAM,SWO不用。
RTT不适合用在IAP模式,就是一个程序跳转到另一个程序的模式,(或者是我不会),SWO可以用。
RTT占用CPU小,SWO相对多,不过都不是太多。
RTT只能用在JLINK下,SWO其他的仿真器也可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

2659

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部