Jlink使用技巧之虛擬串列埠功能

2021-09-19 18:21:56 字數 1637 閱讀 2881

itm ( 指令跟蹤微單元 instrumentation trace macrocell):itm是一應用驅動的跟蹤源,它支援printf類的除錯手段來跟蹤作業系統(os)和應用事件,並發布判定的系統資訊。itm以包的形式發布跟蹤資訊,它由以下部分組成:

在程式開始處新增以下**:

#define itm_port8(n)    (*((volatile unsigned char *)(0xe0000000+4*n)))

#define itm_port16(n) (*((volatile unsigned short*)(0xe0000000+4*n)))

#define itm_port32(n) (*((volatile unsigned long *)(0xe0000000+4*n)))

#define demcr (*((volatile unsigned long *)(0xe000edfc)))

#define trcena 0x01000000

新增重定向printf函式**:

struct __file ;

file __stdout;

file __stdin;

int fputc(int ch, file *f)

return(ch);

}

以上兩段**可以新增在usart.c檔案中,如果檔案中已經有了重定向printf的**,要遮蔽掉,只保留乙個重定向。

在程式中新增需要輸出的除錯資訊:

printf("電子電路開發學習:mcu149, test: %.1f \r\n" ,test += 0.1);
在進行除錯之前要先使能itm除錯功能,具體配置如下圖所示:

使用itm除錯機制必須使用swd模式,而且必須要連線swo,swo對應jtag介面的13腳,即至少需要連線4根線。如下圖所示:

進入debug除錯模式之後,調出debug(printf)視窗,view - serial windows - debug (printf) viewer,如下圖所示:

程式執行之後,就會在printf視窗看到串列埠輸出的資訊。

歷史精選文章:

Jlink使用技巧之虛擬串列埠功能

itm 指令跟蹤微單元 instrumentation trace macrocell itm是一應用驅動的跟蹤源,它支援printf類的除錯手段來跟蹤作業系統 os 和應用事件,並發布判定的系統資訊。itm以包的形式發布跟蹤資訊,它由以下部分組成 在程式開始處新增以下 define itm por...

Jlink使用技巧系列教程索引

近兩個月,寫寫停停,總算完成了這個系列的教程,不容易啊!jlink使用技巧系列文章 介紹使用jlink v9 器燒寫字庫到spi flash 儲存晶元w25q128。介紹使用jlink v9 器的vcom虛擬串列埠功能,通過呼叫arm itm除錯機制,可實現在keil 環境下檢視串列埠資料輸出。介紹...

Windows使用VSPD虛擬串列埠

最近在做android串列埠方面的開發,由於裝置比較龐大又在客戶現場,平時開發只能使用電腦上虛擬的串列埠來進行除錯。下面來說一下使用vspd virtual serial port driver 虛擬windows串列埠 這裡,虛擬了com3 和com4 一組串列埠,待會兒使用這兩個串列埠進行通訊,...