STM32 在 KEIL 下使用 SWV 輸出調(diào)試信息
—— 使用STM32,個(gè)人認(rèn)為 keil 還是首選
SWV 需要占用一個(gè)引腳 PB3/JTDO/TRACES WO 與 JTDO 復(fù)用,使用 SW 時(shí),這一腳將被占用,作為 TRACES WO,一般常見仿真器直接支持
首先重寫 fputc
#include
int fputc(int c, FILE *f)
{
ITM_SendChar(c);
return(c);
}
就可以使用 printf 輸出調(diào)試信息,但實(shí)際上我這么做失敗了,初始化的時(shí)候不知道卡在了哪里,也不弄了,反正 ITM_SendChar 一樣可以輸出。
打開工程選項(xiàng):
- project -> options for target
- "Debug"標(biāo)簽
- Initialization File: Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky\STM32DBG.ini
因?yàn)?SWV 設(shè)置只能由調(diào)試器寫入
仿真器選擇:
如果使用 ULINK,則選擇 SWJ/Port SW
如果是 JLINK,則選擇 Port SW
Trace 選擇:
- Trace enable
- Core Clock 填寫你捕獲時(shí)CPU的頻率
- ITM 使用端口 0 ,這個(gè)改不改應(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è)置的
- 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口模擬實(shí)現(xiàn)I2C通信及應(yīng)用解析[18年05月20日 12:12]