1:debug的串口被占用

2:从Keil 迁移到的LINUX下开发.

3:手上只有JLinkOB,(4线:CLK,SWIO,GND,RST)

4:设备只引出了4线(SWO 没接出)

环境:

JLink版本:  执行 JLinkExe 命令会先显示版本信息

SEGGER J-Link Commander V6.56a (Compiled Nov 25 2019 16:58:42)
DLL version V6.56a, compiled Nov 25 2019 16:58:26

Host: Ubuntu 16.04

A:找到JLINK 安装时的exmaple 和 RTT相关的头文件

路径:/opt/SEGGER/JLink_V656a/Samples/SEGGER_RTT_V656a.tgz

解压出来就好

B:使用,复制路径下的RTT文件夹和Syscalls文件夹下的文件到工程目录,makefile增加对应的源文件

C:编译可能报错:  xxxxx87:5: error: conflicting types for '_write_r' xxxxx

原因,是arm-gcc版本造成的,修改报错的地方的 _write_r(在 reent.h中161行) 的声明即可

修改如下

  1. 1 //extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t));
  2. 2 extern int _write_r(struct _reent *r, int file, const void *ptr, int len);

再编译即可.

D: 实现打印:

打印代码如下:

  1. //main.c
  2.  
  3. #include <stdio.h>
  4. #include "SEGGER_RTT.h"
  5.  
  6. void main(){
  7. /*HAL init 之类的初始化*/
  8. SEGGER_RTT_ConfigUpBuffer(0, NULL, NULL, 0, SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);
  9. SEGGER_RTT_printf(0, "printf Test: %%c, 'S' : %c.\r\n", 'S');
  10. while(1){
  11. }
  12. }

E:运行:

1:先运行 JLinkExe -Device STM32FXXXX  -Speed 4000 -If SWD

2:connect

3:r

4:另起窗口运行 JLinkRTTClient

5:回到JLink的窗口 运行 go

操作如下:

  1. JLinkExe -Device STM32F446RE -Speed 4000 -If SWD
  2. SEGGER J-Link Commander V6.56a (Compiled Nov 25 2019 16:58:42)
  3. DLL version V6.56a, compiled Nov 25 2019 16:58:26
  4.  
  5. Connecting to J-Link via USB...O.K.
  6. Firmware: J-Link OB-STM32F072-CortexM compiled Mar 8 2020 11:15:54
  7. Hardware version: V1.00
  8. S/N: -1
  9. License(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
  10. VTref=3.300V
  11.  
  12. Type "connect" to establish a target connection, '?' for help
  13. J-Link>connect
  14. Device "STM32F446RE" selected.
  15.  
  16. Connecting to target via SWD
  17. Found SW-DP with ID 0x2BA01477
  18. Found SW-DP with ID 0x2BA01477
  19. Scanning AP map to find all available APs
  20. AP[1]: Stopped AP scan as end of AP map has been reached
  21. AP[0]: AHB-AP (IDR: 0x24770011)
  22. Iterating through AP map to find AHB-AP to use
  23. AP[0]: Core found
  24. AP[0]: AHB-AP ROM base: 0xE00FF000
  25. CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
  26. Found Cortex-M4 r0p1, Little endian.
  27. FPUnit: 6 code (BP) slots and 2 literal slots
  28. CoreSight components:
  29. ROMTbl[0] @ E00FF000
  30. ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
  31. ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
  32. ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
  33. ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
  34. ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
  35. ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
  36. Cortex-M4 identified.
  37. J-Link>r
  38. Reset delay: 0 ms
  39. Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
  40. Reset: Halt core after reset via DEMCR.VC_CORERESET.
  41. Reset: Reset device via AIRCR.SYSRESETREQ.
  42. J-Link>go
  1. JLinkRTTClient
  2. ###RTT Client: ************************************************************
  3. ###RTT Client: * SEGGER Microcontroller GmbH *
  4. ###RTT Client: * Solutions for real time microcontroller applications *
  5. ###RTT Client: ************************************************************
  6. ###RTT Client: * *
  7. ###RTT Client: * (c) 2012 - 2016 SEGGER Microcontroller GmbH *
  8. ###RTT Client: * *
  9. ###RTT Client: * www.segger.com Support: support@segger.com *
  10. ###RTT Client: * *
  11. ###RTT Client: ************************************************************
  12. ###RTT Client: * *
  13. ###RTT Client: * SEGGER J-Link RTT Client Compiled Nov 25 2019 16:59:02 *
  14. ###RTT Client: * *
  15. ###RTT Client: ************************************************************
  16.  
  17. ###RTT Client: -----------------------------------------------
  18. ###RTT Client: Connecting to J-Link RTT Server via localhost:19021 ...
  19. ###RTT Client: Connected.
  20.  
  21. SEGGER J-Link V6.56a - Real time terminal output
  22. J-Link OB-STM32F072-CortexM compiled Mar 8 2020 11:15:54 V1.0, SN=-1
  23. Process: JLinkExe
  24. printf Test: %c, 'S' : S.

剩下问题:

启动JLinkRTT Logger 失败问题

JLink OB SWI 取代串口打印的方式的更多相关文章

  1. cotex_m3内核提供的ITM串口打印调试

    cotex_m3内核的ARM提供了ITM串口打印观测的功能,可以不用ARM单片机自己的串口就可在开发时候串口打印调试.节约了宝贵的内部资源,同时也为调试提供了方便.使用方法如下: 1 将下面的SWO_ ...

  2. STM32串口打印的那些知识

    常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手.在MDK环境中,我们常常使用MicroLIB+fputc的方式实现串口打印功能,即: ...

  3. 【转】Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

    @2019-02-28 [小记] Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印.

  4. C#热敏打印图片 串口打印图片

    原文:C#热敏打印图片 串口打印图片 如图,一步一步慢慢调出来的 //串口通信类 public System.IO.Ports.SerialPort serialPort = null; serial ...

  5. 【RTOS】基于V7开发板的最新版FreeRTOS V10.2.0程序模板,含MDK和IAR,支持串口打印任务执行情况

    模板下载: 链接:https://pan.baidu.com/s/1N32Hx7cTbDoRinuzTUB3zw   提取码:6aox 1.MDK使用MDK5.26及其以上版本. 2.IAR使用IAR ...

  6. NRF52832 Mesh调试,使其同时支持串口打印和RTT打印

    查看开发环境里面,是否有这个文件,如果没有你的话,则添加文件. 然后要在sdk_config.h中添加使能 然后打开刚才添加的文件retarget.c,主意里面这些地方 这里它进行判断,要么使用RTT ...

  7. J-Link OB F103 固件提取及维修

    焊接心得挺不错的,可以学习到了 事情起因 某日在调试stm32的时候,错将5v接入3.3v电源输入,开发板烧掉.而且因为jlink没拔掉,也一同阵亡了.光烧了个芯片把整个板换掉太亏,遂打算动手修复. ...

  8. 斑马105SLPlus串口打印二维码

    1.根据说明书调试硬件,校准介质还有色带(很重要),我自己搞了好几天才搞明白. 2.设置好参数,比如打印介质连续.非连续,热敏还是热转质 3.打印机上电后悔自动校准,校准成功后就可以直接通过串口打印, ...

  9. keil工程当中实现printf重定向串口打印

    之前是完全不知道printf可以重定向设置 最近才发现还有这等好事,可以让printf直接实现串口打印 在网上找了很多资料,终于实现了我想要的效果 原理:printf是通过调用底部的fputc来实现打 ...

  10. 东芝 B-EV4 打印机 串口打印命令

    最近在做项目时候使用了东芝的B-EV4打印机,在打印Excel时候由于字体太小,导致打印非常模糊.只能通过串口名称发送打印指令进行打印.在做项目的时候查了很多关于B-EV4打印机的资料,和打印命令.资 ...

随机推荐

  1. Mysql 索引心得

    1. 频繁查询的字段,应该创建索引. 2.更新非常频繁的字段,不应该创建索引. 3.唯一性太差的字段,比如 gender字段,就不应该创建索引. 4.不会出现在where条件之后的字段,不应该创建索引 ...

  2. win10系统如何安装无线网卡驱动?win10系统安装无线网卡驱动教程

    转载:win10系统如何安装无线网卡驱动?win10系统安装无线网卡驱动教程_windows10_Windows系列_操作系统_脚本之家 (jb51.net) win10系统如何安装无线网卡驱动? 有 ...

  3. springboot gradle 加速问题

    初始化项目使用阿里云 seriver url : https://start.spring.io 直接修改为: https://start.aliyun.com 关键的gradle 修改安装包地址 g ...

  4. go-使用 vscore 调试 go 语言

    { // 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linki ...

  5. FFmpeg转换直播流格式

    mp4转rtsp ffmpeg -re -i 1671680590843.mp4 -vcodec copy -acodec copy -f rtsp rtsp://localhost:8554/liv ...

  6. Unity 获取后缀名

    for(int i = 0;i < files.Length;i++) { if(files[i].Name.EndsWith(".meta")) { continue; } ...

  7. http头部meta 作用

    <meta charset="utf-8"> <!-- 设置文档字符编码 --> <meta http-equiv="x-ua-compat ...

  8. sqlalchemy 数据类型

  9. ubuntu无法进入图形界面可以进入终端

    ubuntu开机后无法进入图形界面解决办法:    进入命令行模式,执行下面的命令: rm /etc/X11/xorg.conf cp /etc/X11/xorg.conf.failsafe /etc ...

  10. Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)

    ------------------------------------------------------------------- 转载自:北京-宏哥 https://www.cnblogs.co ...