|
楼主 |
发表于 2010-8-2 12:05:45
|
显示全部楼层
楼上很专业哈~
我现在已经连接了 Vref,SWDIO,SWCLK,SWO,GND
更换了keil下JL2CM3.DLL,由1.8.0换成了1.5.7,开启 trace不会提示select sw port了。
现在用ST的库,其中有ITM_SendChar,它已经设置了寄存器,但是我还是不能正常的看到我输出的信息。ITM Viewer中有时会看到一些hex的数据,但是不明白是什么,而且程序在运行到ITM_SendChar后,似乎就停止下来了。
STM32Init();
while (1)
{
ITM_SendChar(0xAB);
}
下面是那个函数的定义,来源于core_cm3.h
static __INLINE uint32_t ITM_SendChar (uint32_t ch)
{
if (ch == '\n') ITM_SendChar('\r');
if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA) &&
(ITM->TCR & ITM_TCR_ITMENA) &&
(ITM->TER & (1UL << 0)) )
{
while (ITM->PORT[0].u32 == 0);
ITM->PORT[0].u8 = (uint8_t) ch;
}
return (ch);
}
运行到 while (ITM->PORT[0].u32 == 0); 停止 |
|