www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式大雜燴
[導(dǎo)讀]前言串口調(diào)試是單片機(jī)開(kāi)發(fā)過(guò)程必不可少的一個(gè)功能,一般是使用一個(gè)UART-TTL的串口模塊來(lái)實(shí)現(xiàn)串口的功能,其實(shí)下載調(diào)試使用的Jlink仿真器也可以實(shí)現(xiàn)串口調(diào)試的功能,本篇文章將介紹如何使用Jlink實(shí)現(xiàn)虛擬串口功能。ITM簡(jiǎn)介ITM是ARMCortex-M系列內(nèi)核芯片中的一種全新...

前言

串口調(diào)試是單片機(jī)開(kāi)發(fā)過(guò)程必不可少的一個(gè)功能,一般是使用一個(gè)UART-TTL的串口模塊來(lái)實(shí)現(xiàn)串口的功能,其實(shí)下載調(diào)試使用的Jlink仿真器也可以實(shí)現(xiàn)串口調(diào)試的功能,本篇文章將介紹如何使用Jlink實(shí)現(xiàn)虛擬串口功能。

ITM簡(jiǎn)介

ITM是ARM Cortex-M系列內(nèi)核芯片中的一種全新的調(diào)試功能,可以方便的通過(guò)調(diào)試器來(lái)實(shí)現(xiàn)printf調(diào)試功能。來(lái)自STM32中文參考手冊(cè)的介紹:

ITM ( 指令跟蹤微單元 instrumentation trace macrocell):ITM是一應(yīng)用驅(qū)動(dòng)的跟蹤源,它支持printf類的調(diào)試手段來(lái)跟蹤操作系統(tǒng)(OS)和應(yīng)用事件,并發(fā)布判定的系統(tǒng)信息。ITM以包的形式發(fā)布跟蹤信息,它由以下部分組成:

  • 軟件跟蹤:軟件可以通過(guò)直接寫(xiě)ITM激發(fā)寄存器來(lái)發(fā)布包信息。

  • 硬件跟蹤:ITM會(huì)發(fā)布由DWT產(chǎn)生的信息包。

  • 時(shí)間戳:時(shí)間戳被發(fā)布到相應(yīng)的包上。ITM包含一個(gè)21位的計(jì)數(shù)器以產(chǎn)生時(shí)間戳。Cortex-M3的時(shí)鐘或串行線觀測(cè)器(Serial Wire Viewer)的位時(shí)鐘率給計(jì)數(shù)器提供時(shí)鐘。由ITM發(fā)送的信息包輸出到TPIU(Trace Port Interface Unit),TPIU再添加一些額外的包(參考TPIU),然后輸出完整的包序列給調(diào)試器。用戶在設(shè)置或使用ITM之前,必需先使能異常調(diào)試和監(jiān)視控制寄存器(Debug Exception and Monitor Control Register)的TRCEN位。

1.將ITM端口寄存器定義添加到源代碼中

在程序開(kāi)始處添加以下代碼:

  1. #define ITM_Port8(n) ? ?(*((volatile unsigned char *)(0xE0000000 4*n)))

  2. #define ITM_Port16(n) ? (*((volatile unsigned short*)(0xE0000000 4*n)))

  3. #define ITM_Port32(n) ? (*((volatile unsigned long *)(0xE0000000 4*n)))

  4. #define DEMCR ? ? ? ? ? (*((volatile unsigned long *)(0xE000EDFC)))

  5. #define TRCENA ? ? ? ? ?0x01000000

2.重定向printf函數(shù)

添加重定向printf函數(shù)代碼:

  1. struct __FILE { int handle; /* Add whatever you need here */ };

  2. FILE __stdout;

  3. FILE __stdin;


  4. int fputc(int ch, FILE *f) {

  5. ?if (DEMCR
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉