—— 使用STM32,個人認(rèn)為 keil 還是首選
SWV 需要占用一個引腳 PB3/JTDO/TRACES WO 與 JTDO 復(fù)用,使用 SW 時,這一腳將被占用,作為 TRACES WO,一般常見仿真器直接支持
首先重寫 fputc
#include
int fputc(int c, FILE *f)
{
ITM_SendChar(c);
return(c);
}
就可以使用 printf 輸出調(diào)試信息,但實(shí)際上我這么做失敗了,初始化的時候不知道卡在了哪里,也不弄了,反正 ITM_SendChar 一樣可以輸出。
打開工程選項:
- project -> options for target
- "Debug"標(biāo)簽
- Initialization File: Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky\STM32DBG.ini
因為 SWV 設(shè)置只能由調(diào)試器寫入
仿真器選擇:
如果使用 ULINK,則選擇 SWJ/Port SW
如果是 JLINK,則選擇 Port SW
Trace 選擇:
- Trace enable
- Core Clock 填寫你捕獲時CPU的頻率
- ITM 使用端口 0 ,這個改不改應(yīng)該影響不大
進(jìn)入調(diào)試后:
View -> Serial Windows -> Debug (printf) Viewer 就看到輸出信息了
最后備注一下:我山寨版的 ULINK2 失敗了……但同樣是山寨版的 JLINK 成功了
//======================================================
備注::
1》這樣試了一下還真的是可以打印出調(diào)試消息----用printf函數(shù)-----打印到了UART#1
2》配置工程使用的是仿真環(huán)境----Options/Debug/Use Simulator/++++指定STM32DBG.ini做為初始化文件
3》其它沒有什么好設(shè)置的