十分鐘了解JLink全部玩法!
時間:2021-10-22 15:17:29
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]摘要想要打印調(diào)試信息,發(fā)現(xiàn)串口不夠用了,手邊沒有USB轉(zhuǎn)TTL模塊?代碼自己測試好好的,屏蔽了打印信息之后,代碼運行異常了,咋整?EASY!今天小飛哥教你如何讓你手中的JLINK成為調(diào)試利器,10分鐘搞不定,你打我~資料保存在gitee倉庫,獲取方法:資料獲取J-LINK驅(qū)動安裝...
摘要
想要打印調(diào)試信息,發(fā)現(xiàn)串口不夠用了,手邊沒有USB轉(zhuǎn)TTL模塊?代碼自己測試好好的,屏蔽了打印信息之后,代碼運行異常了,咋整?EASY!今天小飛哥教你如何讓你手中的JLINK成為調(diào)試利器,10分鐘搞不定,你打我~資料保存在gitee倉庫,獲取方法:資料獲取J-LINK 驅(qū)動安裝
可以在官網(wǎng)下載,選擇對應(yīng)的系統(tǒng),對應(yīng)的JLINK驅(qū)動版本https://www.segger.com/downloads/jlink當然了,也可以通過文章中放的資料鏈接下載一路不要反抗,靜靜地安裝就行了...OK-->finis,安裝是比較簡單的打開目錄(這是我的安裝目錄),進入到Samples目錄下 C:\Program Files\SEGGER\JLink\SamplesRTT文件夾下即是我們接下來要用到的源碼文件此外還需要config目錄下的SEGGER_RTT_Conf.h文件最終需要的文件為代碼移植
找一個可以正常運行的工程,小飛哥是以STM32F407ZGT6為主控做的一個分享,大家伙可以根據(jù)自己的MCU進行移植工程目錄下中新建RTT目錄,并添加到工程中,添加RTT相關(guān)驅(qū)動源碼包含RTT的路徑進來此時編譯,應(yīng)該是穩(wěn)妥妥的,沒問題的...快速使用
重點來了,移植完成該如何使用呢?這里是有個example的文件夾的里面有好幾個示例,咱們只來看看框框中的即可,其他的有興趣,自行研究~里面是打印一些信息,我們來移植幾個進工程里面去在while循環(huán)中,我們打印一些信息另外,RTT也封裝好了printf函數(shù),紅框中是一些支持的數(shù)據(jù)類型到這里忽然意識到,像串口,我們有個串口調(diào)試助手可以監(jiān)測打印的信息,JLINK打印的信息怎么監(jiān)測呢不用擔(dān)心,官方是有成套方案的,我們找到這么個軟件打開軟件,選擇USB->芯片型號->默認值就行我選擇的是通道0,代碼中配置的為通道0,這樣我們就看到了期望打印的信息啦使用RTT封裝的printf測試看看,英文字符,數(shù)字都顯示OK,中文亂碼了...莫慌,接下來打開一個叫RTTClient的東西,記住這個端口,下面要考顯示效果還是可以的,中文也顯示出來了這個輸出界面畢竟還是有點丑,只要思想不滑坡,方法總比困難多,接下來我們借助第三方軟件,來進行高級點的操作,可以使用xshell,mobaxterm,putty等軟件,建立telnet連接找到這個端口,19021,我這里是用的是mobaxterm軟件連接成功如果中文輸出亂碼的話,修改一下終端字符編碼格式修改字符編碼格式為修改之后,輸出正常啦從RTT封裝的函數(shù)來看,目前僅僅支持下面的一些數(shù)據(jù)類型,暫不支持浮點型,小飛哥也還沒有找到直接輸出浮點型數(shù)據(jù)的方法,需要稍微改一下浮點數(shù)輸出配置,需要在rtt封裝的SEGGER_RTT_vprintf函數(shù)中加入下面代碼,本質(zhì)上是把浮點數(shù)轉(zhuǎn)換為了字符串輸出???case?'f':
???case?'F':
???{
?????char?ch[10]={0};
?????const?char?*?s=ch;
?????double?a?=?va_arg(*pParamList,?double);
?????sprintf(ch,"%4.3f",a);//可以在這里進行精度的控制
?????do{
???????c?=?*s;
???????????s ;
???????????if?(c?==?'\0')?break;
???????_StoreChar(