JLink OB SWI 取代串口打印的方式
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 //extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t));
2 extern int _write_r(struct _reent *r, int file, const void *ptr, int len);
再编译即可.
D: 实现打印:
打印代码如下:
//main.c #include <stdio.h>
#include "SEGGER_RTT.h" void main(){
/*HAL init 之类的初始化*/
SEGGER_RTT_ConfigUpBuffer(0, NULL, NULL, 0, SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);
SEGGER_RTT_printf(0, "printf Test: %%c, 'S' : %c.\r\n", 'S');
while(1){
}
}
E:运行:
1:先运行 JLinkExe -Device STM32FXXXX -Speed 4000 -If SWD
2:connect
3:r
4:另起窗口运行 JLinkRTTClient
5:回到JLink的窗口 运行 go
操作如下:
JLinkExe -Device STM32F446RE -Speed 4000 -If SWD
SEGGER J-Link Commander V6.56a (Compiled Nov 25 2019 16:58:42)
DLL version V6.56a, compiled Nov 25 2019 16:58:26 Connecting to J-Link via USB...O.K.
Firmware: J-Link OB-STM32F072-CortexM compiled Mar 8 2020 11:15:54
Hardware version: V1.00
S/N: -1
License(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
VTref=3.300V Type "connect" to establish a target connection, '?' for help
J-Link>connect
Device "STM32F446RE" selected. Connecting to target via SWD
Found SW-DP with ID 0x2BA01477
Found SW-DP with ID 0x2BA01477
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x24770011)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
Cortex-M4 identified.
J-Link>r
Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
Reset: Halt core after reset via DEMCR.VC_CORERESET.
Reset: Reset device via AIRCR.SYSRESETREQ.
J-Link>go
JLinkRTTClient
###RTT Client: ************************************************************
###RTT Client: * SEGGER Microcontroller GmbH *
###RTT Client: * Solutions for real time microcontroller applications *
###RTT Client: ************************************************************
###RTT Client: * *
###RTT Client: * (c) 2012 - 2016 SEGGER Microcontroller GmbH *
###RTT Client: * *
###RTT Client: * www.segger.com Support: support@segger.com *
###RTT Client: * *
###RTT Client: ************************************************************
###RTT Client: * *
###RTT Client: * SEGGER J-Link RTT Client Compiled Nov 25 2019 16:59:02 *
###RTT Client: * *
###RTT Client: ************************************************************ ###RTT Client: -----------------------------------------------
###RTT Client: Connecting to J-Link RTT Server via localhost:19021 ...
###RTT Client: Connected. SEGGER J-Link V6.56a - Real time terminal output
J-Link OB-STM32F072-CortexM compiled Mar 8 2020 11:15:54 V1.0, SN=-1
Process: JLinkExe
printf Test: %c, 'S' : S.
剩下问题:
启动JLinkRTT Logger 失败问题
JLink OB SWI 取代串口打印的方式的更多相关文章
- cotex_m3内核提供的ITM串口打印调试
cotex_m3内核的ARM提供了ITM串口打印观测的功能,可以不用ARM单片机自己的串口就可在开发时候串口打印调试.节约了宝贵的内部资源,同时也为调试提供了方便.使用方法如下: 1 将下面的SWO_ ...
- STM32串口打印的那些知识
常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手.在MDK环境中,我们常常使用MicroLIB+fputc的方式实现串口打印功能,即: ...
- 【转】Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。
@2019-02-28 [小记] Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印.
- C#热敏打印图片 串口打印图片
原文:C#热敏打印图片 串口打印图片 如图,一步一步慢慢调出来的 //串口通信类 public System.IO.Ports.SerialPort serialPort = null; serial ...
- 【RTOS】基于V7开发板的最新版FreeRTOS V10.2.0程序模板,含MDK和IAR,支持串口打印任务执行情况
模板下载: 链接:https://pan.baidu.com/s/1N32Hx7cTbDoRinuzTUB3zw 提取码:6aox 1.MDK使用MDK5.26及其以上版本. 2.IAR使用IAR ...
- NRF52832 Mesh调试,使其同时支持串口打印和RTT打印
查看开发环境里面,是否有这个文件,如果没有你的话,则添加文件. 然后要在sdk_config.h中添加使能 然后打开刚才添加的文件retarget.c,主意里面这些地方 这里它进行判断,要么使用RTT ...
- J-Link OB F103 固件提取及维修
焊接心得挺不错的,可以学习到了 事情起因 某日在调试stm32的时候,错将5v接入3.3v电源输入,开发板烧掉.而且因为jlink没拔掉,也一同阵亡了.光烧了个芯片把整个板换掉太亏,遂打算动手修复. ...
- 斑马105SLPlus串口打印二维码
1.根据说明书调试硬件,校准介质还有色带(很重要),我自己搞了好几天才搞明白. 2.设置好参数,比如打印介质连续.非连续,热敏还是热转质 3.打印机上电后悔自动校准,校准成功后就可以直接通过串口打印, ...
- keil工程当中实现printf重定向串口打印
之前是完全不知道printf可以重定向设置 最近才发现还有这等好事,可以让printf直接实现串口打印 在网上找了很多资料,终于实现了我想要的效果 原理:printf是通过调用底部的fputc来实现打 ...
- 东芝 B-EV4 打印机 串口打印命令
最近在做项目时候使用了东芝的B-EV4打印机,在打印Excel时候由于字体太小,导致打印非常模糊.只能通过串口名称发送打印指令进行打印.在做项目的时候查了很多关于B-EV4打印机的资料,和打印命令.资 ...
随机推荐
- jQuery对象和js对象是怎样转换的?
两种转换方式将一个jQuery对象转换成js对象:[index]和.get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的js对象. 如:var $v ...
- Nginx教程由浅入深
Nginx 一.安装Nginx 1.准备工作 (1)打开虚拟机,使用远程连接工具连接 linux 操作系统 (2)到 nginx 官网下载软件 http://nginx.org/ 2.开始进行 n ...
- ElasticSearch入门学习笔记
ElasticSearch入门笔记 分页查询 from: 开始位置 size: 查多少条 GET /credit_enterprise_info/_search { "query" ...
- M1 安装apache tomcat
一.下载以及安装 1.Tomcat(官网:http://tomcat.apache.org/) 2.找到需要的版本:我用的9版本 二.将下载的文件放在自己一个目录下去 三.设置Apache环境路径 e ...
- 斐讯K2_V22.6.507.43降级+刷机整个过程
K2刷机整个过程 (包括降级) 开始之前请先下载好相对应的工具包,其中包括: 官方固件:"K2_V22.6.506.28.bin"."K2_V22.6.507.43.bi ...
- 洛谷 P5721 【入门3】循环结构
P5723 [深基4.例13]质数口袋 1.题目描述 小 A 有一个质数口袋,里面可以装各个质数.他从 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋. 口袋的负载量就是口袋 ...
- Android MD5加密、RSA加密
现在公司做金融项目,需要考虑安全加密方面的问题.感谢大牛同事(冯哥) ,给我很大的帮助. 考虑到安全优化,我们把秘钥.加密步骤放到native中.考虑用到的技术:(1 )jni,(2 )OpenSSL ...
- Tomcat 的连接数与线程池
一.背景 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 Tomcat配置文件server.xm ...
- Mysql数据库基础第二章:(八)子查询经典案例
Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...
- tomcat 3 - 默认连接器
Tomcat 中使用的容器连接器必须满足以下要求: 实现 org.apache.catalina.Connector 接口 负责创建实现了 org.apache.catalina.Request 接口 ...