新闻  |   论坛  |   博客  |   在线研讨会
如何在J-Scope中设置RTT控制块的搜索位置?
13261589816 | 2023-03-22 15:07:05    阅读:359   发布文章

J-Scope是SEGGER公司推出的搭配J-Link使用的调试软件,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。

要使用J-Scope,首先需要去Segger官网如下地址下载并安装最新版本的J-Scope软件:

https://www.segger.com/downloads/jlink/#JScope

安装完成后,在使用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能够更好的适配多类型的芯片和复杂条件下的烧录需求,如果您对J-Link系列调试工具感兴趣,欢迎咨询info@bmrtech.com


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
北京麦克泰软件技术有限公司(中文简称麦克泰,英文简称 BMR)成立于1995年, 是国内专业的嵌入式系统软件企业,与世界领先的嵌入式软件供应商合作有二十多年的时间,为嵌入式研发提供丰富的工具,软件,解决方案和培训服务。
推荐文章
最近访客