J-Scope是SEGGER公司推出的搭配J-Link使用的调试软件,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。
要使用J-Scope,首先需要去Segger官网如下地址下载并安装最新版本的J-Scope软件。
安装完成后,在使用J-Scope之前,我们需要了解到有J-Scope有两种工作模式。
(1)HSS高速采样模式:HSS模式通过定期采样内存位置来工作。该模式下,用户无需对项目工程进行任何修改,仅需提供一个elf文件和对采样率等参数设置后即可工作。使用介绍可以参考文章(点击查看):如何使用J-scope查看数据变化波形
(2)RTT实时传输模式:使用SEGGER的实时传输技术RTT快速地从目标MCU输出/输入信息,RTT模式不需要任何额外的引脚或硬件,通过标准的调试端口连接到目标硬件。但需要将RTT使用到的一些文件添加到项目工程中。关于RTT技术的原理和一些配置选项可以参考文章(点击查看):高性能的J-Link RTT通讯,不妨来了解一下!
01目标端的实现
本文我们将介绍在RTT实时传输模式下需要注意的一个问题,Segger RTT实时传输技术使用目标内存中的SEGGER RTT控制块结构来管理数据的读写。控制块包含一个ID,使其可以通过J-Link在内存中被找到,在J-Scope软件中创建工程后,当开始对数据进行采样时,J-Link会在已知的目标RAM区域中自动搜索SEGGER RTT控制块。通常情况下J-Scope能够自动找到应用中分配的RTT控制块的地址。以Segger Embedded Studio为例,打开编译生成的map文件,在其中搜索“ _SEGGER_RTT”即可找到RTT控制块的内存地址。
02自动搜索RTT控制块失败
但是如果某些芯片比较特殊,或者偶然出现了无法自动搜索到RTT控制块的情况,可以在创建J-Scope工程的时候添加J-Link脚本文件(*.script格式文件)来指定RTT控制块的搜索位置。
在J-Link脚本中可以通过以下两种命令来指定RTT控制块的搜索方式。
(1)手动指定控制块的确切地址,具体地址在map文件中搜索获得。
· SetRTTAddr命令
示例:SetRTTAddr 0x20000000
(2)指定J-Link搜索控制块的内存范围,设定的内存范围需要涵盖RTT控制块的内存范围。
· SetRTTSearchRanges
示例:SetRTTSearchRanges 0x10000000 0x1000, 0x20000000 0x1000
关于J-Link scrip脚本文件的详细介绍可以参考此文章(点击查看):J-Link script文件的作用与用法
除了RTT实时传输技术,Segger J-Link script脚本文件中支持的配置命令允许用户对烧录过程进行自定义,从而使J-Link能够更好的适配多类型的芯片和复杂条件下的烧录需求。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !