STM32 在 KEIL 下使用 SWV 輸出調試信息
—— 使用STM32,個人認為 keil 還是首選
SWV 需要占用一個引腳 PB3/JTDO/TRACES WO 與 JTDO 復用,使用 SW 時,這一腳將被占用,作為 TRACES WO,一般常見仿真器直接支持
首先重寫 fputc
#include
int fputc(int c, FILE *f)
{
ITM_SendChar(c);
return(c);
}
就可以使用 printf 輸出調試信息,但實際上我這么做失敗了,初始化的時候不知道卡在了哪里,也不弄了,反正 ITM_SendChar 一樣可以輸出。
打開工程選項:
- project -> options for target
- "Debug"標簽
- Initialization File: Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky\STM32DBG.ini
因為 SWV 設置只能由調試器寫入
仿真器選擇:
如果使用 ULINK,則選擇 SWJ/Port SW
如果是 JLINK,則選擇 Port SW
Trace 選擇:
- Trace enable
- Core Clock 填寫你捕獲時CPU的頻率
- ITM 使用端口 0 ,這個改不改應該影響不大
進入調試后:
View -> Serial Windows -> Debug (printf) Viewer 就看到輸出信息了
最后備注一下:我山寨版的 ULINK2 失敗了……但同樣是山寨版的 JLINK 成功了
//======================================================
備注::
1》這樣試了一下還真的是可以打印出調試消息----用printf函數-----打印到了UART#1
2》配置工程使用的是仿真環境----Options/Debug/Use Simulator/++++指定STM32DBG.ini做為初始化文件
3》其它沒有什么好設置的
上一篇:單片機空閑與掉電模式
- Keil MDK破解過程詳解[18年05月20日 11:11]
- STM32F407之模擬I2C(二)之24C128[18年05月20日 12:18]
- STM32F1使用I/0模擬I2C接口[18年05月20日 12:17]
- STM32模擬I2C程序[18年05月20日 12:13]
- STM8S 模擬I2C程序[18年05月20日 12:14]
- 普通IO口模擬實現I2C通信及應用解析[18年05月20日 12:12]