精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用調試器JLink來打印信息

嵌入式情報局 ? 來源:果果小師弟 ? 作者:果果小師弟 ? 2022-10-14 09:55 ? 次閱讀

摘要:不知道大家在單片機開發中是如何打印調試信息的,大多數應該是用串口調試打印吧,在大多數的情況下,一般在制板和寫代碼時都會預留串口1做為調試打印用。

但是在實際開發如果沒有預留串口怎么辦?其實我們的下載器是可以用來作為調試打印來用的,只是很多小伙伴不知道這個功能而已,今天就來說一下如何用調試器JLink來打印信息。

1、JLink仿真調試器

下載器五花八門,但是我只用JLink,小巧方便攜帶。對于單片機開發者一般所用的下載器基本就是JLink和ST-Link。這兩者功能差不多,JLink是SEEGER公司的,ST-Link是ST公司的,而且只支持ST系列的芯片。只用JLink下載器調試,原因就是這玩意體積小,只有四根線,用起來太方便了,YYDS!

3f883264-4afe-11ed-a3b6-dac502259ad0.pngJ-Link OB ARM 仿真調試器

2、安裝JLink驅動

下載鏈接:https://www.segger.com/downloads/jlink/。買回來JLink驅動后,一般賣家都會提供JLink的驅動程序,驅動安裝完成后就可以下載調試程序了。

406f8a7e-4afe-11ed-a3b6-dac502259ad0.pnghttps://www.segger.com/downloads/jlink/

當然我們現在要使用JLink的RTT功能(實時傳輸Real Time Transfer,可不是RT-Thread操作系統),就需要在官網下載完整的Jlink包,最新版本的是V7.52版本的,當然別的版本也可以。下載完成后直接安裝可以了。安裝完成后你會在你的安裝目錄下看到如下內容:

40b011f2-4afe-11ed-a3b6-dac502259ad0.pngJLink安裝目錄

3、移植RTT

安裝完成就好辦了,RTT源碼包就在我們剛剛安裝的JLINK驅動的目錄里面。我的目錄是:D:SoftwareSEGGERJLink_V644bSamplesRTT

4138128c-4afe-11ed-a3b6-dac502259ad0.png

解壓后具體的目錄是:D:SoftwareSEGGERJLink_V644bSamplesRTTSEGGER_RTT_V644bRTT

41762892-4afe-11ed-a3b6-dac502259ad0.png

然后將這個RTT文件夾復制到我們的編寫程序的工程文件夾中

4195b64e-4afe-11ed-a3b6-dac502259ad0.png

然后在項目中新建一個RTT分組,并將RTT文件夾中的兩個.c文件添加進來。

41b60a0c-4afe-11ed-a3b6-dac502259ad0.png41cf39a0-4afe-11ed-a3b6-dac502259ad0.png

當然還要記得添加RTT的頭文件路徑

426eb250-4afe-11ed-a3b6-dac502259ad0.png

到這里基本就移植成功了,是不是很簡單,就是把RTT的源碼添加到工程中即可,完全不需要修改別的什么操作。

4、RTT打印輸出

接下來就可以打印輸出了。

#include"sys.h"
#include"delay.h"
#include"usart.h"
#include"led.h"
#include"SEGGER_RTT.h"

intmain(void)
{
HAL_Init();//初始化HAL庫
Stm32_Clock_Init(336,8,2,7);//設置時鐘,168Mhz
delay_init(168);//初始化延時函數
LED_Init();//初始化LED

while(1)
{
SEGGER_RTT_printf(0,"zhiguoxin666
");
}
}
427e302c-4afe-11ed-a3b6-dac502259ad0.png

編譯沒有錯誤之后連接好下載器

42ae91a4-4afe-11ed-a3b6-dac502259ad0.png連接好硬件 4301df9e-4afe-11ed-a3b6-dac502259ad0.png配置為SW模式

之后打開JLink安裝目錄下的JLinkRTTViewer.exe

43487bc0-4afe-11ed-a3b6-dac502259ad0.png

按照如下配置

43bab3f2-4afe-11ed-a3b6-dac502259ad0.png

將代碼下載到單片機中就可以看到已經完美的打印了。

43d27a96-4afe-11ed-a3b6-dac502259ad0.png

5、RTT的使用技巧

1、RTT緩沖大小

有時候我們發現我們的信息不能完全的打印出來,可能是因為緩沖不夠,默認緩沖區大小事1K字節,如果不夠可以改大一點。

43f48ff0-4afe-11ed-a3b6-dac502259ad0.png默認1024字節

2、多虛擬端口使用

RTT支持向不同的虛擬端口中打印信息,使用方法如下。

首先在RTT Viewer軟件中分別打開三個虛擬端口:

4408d62c-4afe-11ed-a3b6-dac502259ad0.png

編寫代碼

while(1)
{
SEGGER_RTT_SetTerminal(0);
SEGGER_RTT_printf(0,"zhiguoxin666,SEGGERRTTTerminal0!
");
SEGGER_RTT_SetTerminal(1);
SEGGER_RTT_printf(0,"zhiguoxin666,SEGGERRTTTerminal1!
");
SEGGER_RTT_SetTerminal(2);
SEGGER_RTT_printf(0,"zhiguoxin666,SEGGERRTTTerminal2!
");
delay_ms(1000);
}

編譯、鏈接、下載,觀察現象:

44323e18-4afe-11ed-a3b6-dac502259ad0.png窗口0 445ee44a-4afe-11ed-a3b6-dac502259ad0.png窗口1 447b8276-4afe-11ed-a3b6-dac502259ad0.png窗口2

3、修改打印字符顏色

RTT支持不同顏色的字符顯示。

449de262-4afe-11ed-a3b6-dac502259ad0.png

時用時在字符串前面加上對應顏色的宏定義就可以了。

while(1)
{
SEGGER_RTT_SetTerminal(0);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"zhiguoxin666,SEGGERRTTTerminal0!
");
SEGGER_RTT_SetTerminal(1);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_GREEN"zhiguoxin666,SEGGERRTTTerminal1!
");
SEGGER_RTT_SetTerminal(2);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_BLUE"zhiguoxin666,SEGGERRTTTerminal2!
");
delay_ms(1000);
}

編譯、鏈接、下載,觀察現象:

44d7b29e-4afe-11ed-a3b6-dac502259ad0.png紅色 44eb4638-4afe-11ed-a3b6-dac502259ad0.png綠色 451a267e-4afe-11ed-a3b6-dac502259ad0.png藍色

4、使用printf重定向

項目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT組件,則會非常方便。使用的方法是直接使用RTT提供的API實現fputc。

4532a67c-4afe-11ed-a3b6-dac502259ad0.png原子的例程

重定義fputc函數

//重定義fputc函數
intfputc(intch,FILE*f)
{
SEGGER_RTT_PutChar(0,ch);
returnch;
}

替換之前的代碼:

while(1)
{
printf("zhiguoxin666,printfSEGGERRTTTerminal!
");
delay_ms(1000);
}

編譯、鏈接、下載

45d6ae7a-4afe-11ed-a3b6-dac502259ad0.png

結語:RTT和USRAT各有優點,要根據不同的情況選擇,如果遇到一個顯示項目沒有預留串口用來調試打印信息,可以用這個的方法。當然打印調試還有很多方法,這只是其中的一種,如果你還有更好的方法,歡迎評論區留言喲~

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44514

    瀏覽量

    632965
  • 串口
    +關注

    關注

    14

    文章

    1543

    瀏覽量

    76188
  • 調試器
    +關注

    關注

    1

    文章

    300

    瀏覽量

    23689
  • Jlink
    +關注

    關注

    5

    文章

    111

    瀏覽量

    37638

原文標題:教你把JLink變成串口調試助手

文章出處:【微信號:嵌入式情報局,微信公眾號:嵌入式情報局】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DM8168的OSD算法中,用Vps_printf()不能輸出打印信息

    在DM8168的dsp端加入自己的算法,但是現在在調試發現,算法內部不能輸出打印信息。 在TI自己提供的OSD算法下用Vps_printf加入打印信息進行測試,在
    發表于 05-31 08:59

    GT_Trace()沒有打印信息

    個函數中我用GT_Trace()打印信息,編譯鏈接通過,但我運行CE_DEBUG=2 ./XX 后,發現.C文件的這個函數中的GT_Trace()并沒有打印信息,而算法文件中可以正常打印信息,這是
    發表于 06-21 15:28

    串口打印信息操作步驟分享!

    打印調試信息是編程技術中最基礎也是十分重要部分。雖然單片機不能像計算機那樣有類似控制臺打印信息的功能,但是單片機同樣可以通過串口打印信息。在
    發表于 09-30 04:37

    如何利用串口輸出printf的打印信息

    PC機上,printf輸出到顯示設備,在嵌入式linux系統,一般利用printf輸出調試信息,需要重定向到串口。以AT91RM9200為例,簡要說明如何利用串口輸出printf的打印信息。 在
    發表于 11-04 07:10

    何用Printf() 函數打印信息

    何用Printf() 函數打印信息
    發表于 12-15 07:56

    如何自制一個基于jlink的無線調試器

    如何自制一個基于jlink的無線調試器
    發表于 01-18 06:47

    jlink-v8調試器jlink接口與swd接口有什么不同呢

    mdk集成開發環境境中,jlink-v8調試器jlink接口與swd接口有什么不同呢?
    發表于 08-29 14:18

    Nuclei_Studio運行N101_irqc_demo串口不顯示打印信息怎么解決?

    使用MCU200T開發板和蜂鳥調試器調試N101,Nuclei_Studio 運行N101_irqc_demo過程中正常,但是串口不顯示打印信息,請問有人知道嗎?
    發表于 08-12 08:23

    jlink-AXD仿真調試實驗手冊

    jlink-AXD仿真實驗調試手冊 1.實驗設備:TQ2440開發板一套,Jlink-V6,Jtag 板,ADS編譯,AXD調試器。2.
    發表于 03-11 09:06 ?79次下載

    Microchip調試器(MDB)用戶指南

    Microchip調試器(MDB)是Microchip硬件和軟件開發工具的命令行調試器接口。作為Microchip MPLAB? X集成開發環境(Integrated Development Environment,IDE)圖形界面的替代,MDB通過命令提示符接口
    發表于 05-12 09:46 ?19次下載

    STM32F411Cx 401Cx最小系統 JLINK調試器開源

    電子發燒友網站提供《STM32F411Cx 401Cx最小系統 JLINK調試器開源.zip》資料免費下載
    發表于 08-09 09:26 ?2次下載
    STM32F411Cx 401Cx最小系統 <b class='flag-5'>JLINK</b><b class='flag-5'>調試器</b>開源

    MPLAB Snap在線調試器信息手冊

    電子發燒友網站提供《MPLAB Snap在線調試器信息手冊.pdf》資料免費下載
    發表于 09-21 10:13 ?0次下載
    MPLAB Snap在線<b class='flag-5'>調試器</b><b class='flag-5'>信息</b>手冊

    Microchip調試器(MDB)用戶指南

    Microchip調試器(MDB)是Microchip硬件和軟件開發工具的命令行調試器接口。作為Microchip MPLAB? X集成開發環境(Integrated Development Environment,IDE)圖形界面的替代,MDB通過命令提示符接口
    發表于 09-22 17:53 ?0次下載
    Microchip<b class='flag-5'>調試器</b>(MDB)用戶指南

    調試器連接MCU不穩定怎么辦?

    有沒有小伙伴遇到使用GDlink或者Jlink調試GD32 MCU的時候出現不穩定的情況,剛要發現問題時調試器和MCU斷開連接了,這個時候可能抓狂的心都有了。今天就教給大家幾個提高調試器
    的頭像 發表于 02-21 09:44 ?880次閱讀
    <b class='flag-5'>調試器</b>連接MCU不穩定怎么辦?

    jlink調試器的工作原理

    我們平時使用的jlink調試器就是使用JTAG接口,JTAG以前是用于測試芯片的一種通信方式,現在部分ARM或者DSP等都存在JTAG接口,這樣我們就可以通過JTAG接口訪問CPU以及其內部狀態信息等。
    的頭像 發表于 03-08 12:32 ?2837次閱讀
    <b class='flag-5'>jlink</b><b class='flag-5'>調試器</b>的工作原理