[STM32] jlink RTT使用详解

1.什么是Jlink RTT。
全称为SEGGER’s Real Time Transfer(RTT),一种基于SEGGER公司的基于JLink调试器的交互式用户I/O的技术。故名思义,就是一种基于jlink的和用户进行交互的技术,可以直观的显示调试芯片的信息,以及可以让用户和调试芯片进行互动的技术。

2.为什么要使用Jlink RTT。
1>不需要额外的引脚和硬件配置,支持SWD方式,两根线就可以使用。
2>速度快,与debug和run并行使用,平均一行文本可以在一微秒或更少的时间内输出。官方给出了一个速度对比图。


/*********************************************************************************************************

*                                                主程序

*********************************************************************************************************/

int main (void)                                                                                 

{





  FLASH_ReadOutProtection(DISABLE);                                   //读保护





    SystemInit();                                                                            //CPU时钟初始化

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);        //使用优先级组4(4:4结构)



    SEGGER_RTT_Init();    



    #ifdef DEBUG_MODE                                                        //调试模式

    SEGGER_RTT_printf(0,"Demo Init!\r\n");

    #endif    





while(1)

{

        SEGGER_RTT_SetTerminal(0);     

        SEGGER_RTT_printf(0,"Demo Run Terminal 0!\r\n");    

        SEGGER_RTT_SetTerminal(1);     

        SEGGER_RTT_printf(0,"Demo Run Terminal 1!\r\n");         

}







  return (0);

}

 上面的代码就是用通道0的terminal0和terminal1输出调试信息。RTT的SDK中默认已经配置好channel 0的参数了,我们使用channel 0的时候,直接使用打印函数即可。
上述代码编辑后编译无错误,然后下载。

打开RTT Viewer后显示如下,按照实际情况配好参数后点击OK。

uint8_t _UpBufferCH1[64] = {0};
uint8_t _DownBufferCH1[64] = {0};


/*********************************************************************************************************
*                                                主程序
*********************************************************************************************************/
int main (void)                                                                                 
{


  FLASH_ReadOutProtection(DISABLE);                                   //读保护


    SystemInit();                                                                            //CPU时钟初始化
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);        //使用优先级组4(4:4结构)

    SEGGER_RTT_Init();   


    /* 配置通道1,上行配置(STM32->RTT Viewer软件) */
    SEGGER_RTT_ConfigUpBuffer(1, "RTTUP", _UpBufferCH1, 64, SEGGER_RTT_MODE_NO_BLOCK_SKIP);

    /* 配置通道1,下行配置(RTT Viewer软件->STM32) */   
    SEGGER_RTT_ConfigDownBuffer(1, "RTTDOWN", _DownBufferCH1, 64, SEGGER_RTT_MODE_NO_BLOCK_SKIP);

    #ifdef DEBUG_MODE                                                        //调试模式
    SEGGER_RTT_printf(0,"Demo Init!\r\n");
    #endif   


while(1)
{
        SEGGER_RTT_SetTerminal(0);     
        SEGGER_RTT_printf(1,"Demo Run Terminal 0!\r\n");   
        SEGGER_RTT_SetTerminal(1);     
        SEGGER_RTT_printf(1,"Demo Run Terminal 1!\r\n");         
}



  return (0);
}

上述代码编辑后编译无错误,然后下载。
打开RTT Logger后如下所示:

---------------------
作者:xyz549040622
链接:https://bbs.21ic.com/icview-3118746-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值