COTEXT-M3 SWO debug調試方法詳解

1.

https://www.strongerhuang.com/categories/printf%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B/

黃工的這篇文章相當有用

總結一下。

SWO類似於printf

可以替換一個printf,用起來很方便。

core_m4.h

__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
{
  if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) &&      /* ITM enabled */
      ((ITM->TER & 2UL               ) != 0UL)   )     /* ITM Port #0 enabled */
  {
    while (ITM->PORT[1U].u32 == 0UL)
    {
      __NOP();
    }
    ITM->PORT[1U].u8 = (uint8_t)ch;
  }
  return (ch);
}

#include <stdio.h>
#include "core_cm4.h"

int fputc(int ch, FILE *f)
{
    ITM_SendChar(ch);
    return ch;
}

以上是函數中需要添加的代碼,代碼量很少。

硬件上需要多連接一根線SWO

本系列教程主要是針對MCU的printf打印輸出,常見的方式:
1.UART打印輸出
2.仿真打印輸出
3.SWO打印輸出
4.JLink-RTT打印輸出

除仿真之外,其它三種都是基於MCU硬件打印輸出。

從打印效率來說:UART < SWO < JLink-RTT。

每一種printf打印輸出方式應用場景不同,也各有各的特點。

CUBE MX配置

KEIL配置:

 

IAR

RTT

https://www.strongerhuang.com/printf/printf%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B07_JLink-RTT%E6%89%93%E5%8D%B0%E8%BE%93%E5%87%BA%E9%85%8D%E7%BD%AE%EF%BC%8C%E5%9F%BA%E4%BA%8EJ-Link%E3%80%8ERTT%20Viewer%E3%80%8F.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章