千家信息网

IAR ITM机制中打印调试信息的途径有哪些

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章将为大家详细讲解有关IAR ITM机制中打印调试信息的途径有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。打印调试信息几种途径:1.串口打印:将fput
千家信息网最后更新 2025年01月23日IAR ITM机制中打印调试信息的途径有哪些

这篇文章将为大家详细讲解有关IAR ITM机制中打印调试信息的途径有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

打印调试信息几种途径:

1.串口打印:

将fputc映射到UART,通过USB-TLL转接板打印调试信息。

STM32F103官方提供的代码:

 /**  * @brief  Retargets the C library printf function to the USART.  * @param  None  * @retval None  */PUTCHAR_PROTOTYPE{  /* Place your implementation of fputc here */  /* e.g. write a character to the USART */  USART_SendData(EVAL_COM1, (uint8_t) ch);  /* Loop until the end of transmission */  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)  {  }  return ch;}

1.通过Jlink仿真器打印:

cortex-M3内核支持ITM机制,可以通过Jlink打印调试信息。 ITM相关函数在core_cm3.h中有定义,需要将fputc重新映射到ITM,实现printf。

注意:

ITM需要使用SWD的仿真口(且需要连接SWO),而不是常用的Jlink仿真口。

需要激活ITM的Port0端口来捕获信息

时钟需要配置和开发板的时钟一致

SWD接口如下:

fputc映射代码如下:

 /**  * @brief  Retargets the C library printf function to the USART.  * @param  None  * @retval None  */PUTCHAR_PROTOTYPE{#ifdef DEBUG_USART1    /* Place your implementation of fputc here */    /* e.g. write a character to the USART */    USART_SendData(USART1, (uint8_t) ch);    /* Loop until the end of transmission */    while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)    {        __NOP();    }    return ch;#endif    #ifdef DEBUG_ITM    /* Place your implementation of fputc here */    /* e.g. write a character to the ITM */    ITM_SendChar((uint32_t)ch);        return ch;#endif}

IAR配置如下:

使用SWD

仿真:

将数据逻辑断点打在randomvalue变量处,使用Timeline窗口查看randomvalue。 打印随机数变量 randomvalue到Terminal IO窗口,

关于"IAR ITM机制中打印调试信息的途径有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0