当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]前言串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink实现虚拟串口功能。ITM简介ITM是ARMCortex-M系列内核芯片中的一种全新...

前言

串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink实现虚拟串口功能。

ITM简介

ITM是ARM Cortex-M系列内核芯片中的一种全新的调试功能,可以方便的通过调试器来实现printf调试功能。来自STM32中文参考手册的介绍:

ITM ( 指令跟踪微单元 instrumentation trace macrocell):ITM是一应用驱动的跟踪源,它支持printf类的调试手段来跟踪操作系统(OS)和应用事件,并发布判定的系统信息。ITM以包的形式发布跟踪信息,它由以下部分组成:

  • 软件跟踪:软件可以通过直接写ITM激发寄存器来发布包信息。

  • 硬件跟踪:ITM会发布由DWT产生的信息包。

  • 时间戳:时间戳被发布到相应的包上。ITM包含一个21位的计数器以产生时间戳。Cortex-M3的时钟或串行线观测器(Serial Wire Viewer)的位时钟率给计数器提供时钟。由ITM发送的信息包输出到TPIU(Trace Port Interface Unit),TPIU再添加一些额外的包(参考TPIU),然后输出完整的包序列给调试器。用户在设置或使用ITM之前,必需先使能异常调试和监视控制寄存器(Debug Exception and Monitor Control Register)的TRCEN位。

1.将ITM端口寄存器定义添加到源代码中

在程序开始处添加以下代码:

  1. #define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000 4*n)))

  2. #define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0000000 4*n)))

  3. #define ITM_Port32(n)   (*((volatile unsigned long *)(0xE0000000 4*n)))

  4. #define DEMCR           (*((volatile unsigned long *)(0xE000EDFC)))

  5. #define TRCENA          0x01000000

2.重定向printf函数

添加重定向printf函数代码:

  1. struct __FILE { int handle; /* Add whatever you need here */ };

  2. FILE __stdout;

  3. FILE __stdin;


  4. int fputc(int ch, FILE *f) {

  5.  if (DEMCR
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

深圳2022年1月12日 /美通社/ -- 2022年1月12日,枫笛正式发布了Blink900迷你双通道无线麦克风系统。该产品拥有卓越的稳定性及兼容性,通过配件可连接相机、手机、平板、电脑,能轻松驾驭Vlog、直播、访...

关键字: link 双通道 无线麦克风

(全球TMT2022年1月13日讯)2022年1月12日,枫笛正式发布了Blink900迷你双通道无线麦克风系统。该产品拥有卓越的稳定性及兼容性,通过配件可连接相机、手机、平板、电脑,能轻松驾驭Vlog、直播、访谈等场...

关键字: link 双通道 无线麦克风

(全球TMT2021年12月16日讯)12月15日,由中国电信主办,华润数科承办的“首届中央企业数字化转型峰会 -- 5G+工业互联网融合创新应用分论坛”在深圳市中国华润大厦落幕。期间,华润数科宣布其旗下工业互联网业务...

关键字: link 工业互联网

Jlink使用技巧之合并烧写文件前言IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,...

关键字: link 烧写

一、Starlink星链计划是什么?1.目标:4.2万颗卫星2.性能测试二、5G通信性能1. 通信速度2.通信时延3. 速度快的主要原因4.系统容量三、Starlink与5G的对比1.覆盖范围2.通信速度四、Starli...

关键字: link 马斯克

继上月ST(意法半导体)、赛灵思、Molex、安森美、博通等芯片大厂发布涨价通知后,近日瑞萨电子和自连科技(Alinket)也都陆续调涨芯片报价。瑞萨电子:2022年1月1日起调涨10月15日,瑞萨电子向客户发送了一份涨...

关键字: link 安森美 ST

Jlink使用技巧系列教程前言大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPIFlash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPIFlash存储器,...

关键字: link 读写

前言Jlink可以将Hex文件下载到单片机内,也可以将未加密单片机内部的程序文件读出。本篇文章介绍,如何使用JFlash来读取单片机的程序,学习单片机程序文件的读取,不是为了破解别人的程序,而是学习破解的原理,从而更好保...

关键字: link STM32

Jlink使用技巧系列教程前言大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPIFlash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPIFlash存储器,...

关键字: link 读写

关注「嵌入式大杂烩」,选择「星标公众号」一起进步!来源| 电子电路开发学习前言分享一篇之前写的文章。趁着前段时间两家PCB厂家打价格战,一天之内,多次降价,看着真是热闹。捷配降到最低3元一款,而嘉立创降到最低5元一款,都...

关键字: link 调试器
关闭