zoukankan      html  css  js  c++  java
  • SW4STM32 + JLINK调试使用RTT输出调试信息

    为什么要使用RTT输出打印信息?有很多打印技术 例如 :UART的重定向输出,SWO引脚输出,Semihosting在控制台输出等

    RTT具有更快的打印速度和实时性看一张图:

    J-Link RTT -实时传输的特性

     •SEGGER的实时传输(RTT)是嵌入式应用中系统监控和交互用户I/O的成熟技术。它结合了SWO和半主机的优点,具有非常高的性能。

     •与目标应用程序进行双向通信

     •非常高的传输速度,不影响实时行为

     •使用调试通道进行通信

     •不需要额外的硬件或引脚

     •任何J-Link型号均支持

     •支持ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33和Renesas RX100/200/600

     •提供完整的实现代码

    1首先你要安装好J-LINK驱动

    目前的SW4STM32不支持J-LINK调试。需要安装J-LINK插件

    2.首先安装J-LINK插件

    输入地址: http://gnu-mcu-eclipse.netlify.com/v4-neon-updates

     

    我们只需要选择安装GDB SEGGER J-Link Debugging,安装完成后选择Debug Configuration

     在Debug Configuration界面会发现新的选项 GDB SEGGER J-LINK Debugging,点击添加新的配置后,修改该Name ,然后悬着Tab选项中的Debugger

     3 完成配置后RTT代码移植

    安装好J-LINK驱动后,将RTT的代码位置如下复制并解压

     

     移植到自己的工程

     添加头文件路径

     标准库重定向实现

     1 int printf(const char *fmt,...) {
     2 
     3   char buffer[128];
     4   va_list args;
     5   va_start (args, fmt);
     6   int n = vsnprintf(buffer, sizeof(buffer), fmt, args);
     7   SEGGER_RTT_Write(0, buffer, n);
     8   va_end(args);
     9   return n;
    10 }

  • 相关阅读:
    「SHOI2016」黑暗前的幻想乡 解题报告
    「ZJOI2016」大森林 解题报告
    「ZJOI2016」旅行者 解题报告
    「HNOI2016」树 解题报告
    「HNOI2016」序列 解题报告
    SP8791 DYNALCA
    iOS代码封装成.a文件(封装SDK)
    iOS开发总结-Xcode常见错误
    iOS开发之loadView、viewDidLoad及viewDidUnload的关系
    iOS 8 之后的动态沙盒路径
  • 原文地址:https://www.cnblogs.com/mickey-double/p/15502835.html
Copyright © 2011-2022 走看看