查看: 1088|回复: 0

[原创] 如何在J-Scope中设置RTT控制块的搜索位置?

[复制链接]
  • TA的每日心情
    开心
    2023-6-12 14:34
  • 签到天数: 165 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2023-6-12 15:21:57 | 显示全部楼层 |阅读模式
    分享到:
    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文件和对采样率等参数设置后即可工作。使用介绍可以参考文章(点击查看➡):[color=var(--weui-LINK)]如何使用J-scope查看数据变化波形
    (2)RTT实时传输模式:使用SEGGER的实时传输技术RTT快速地从目标MCU输出/输入信息,RTT模式不需要任何额外的引脚或硬件,通过标准的调试端口连接到目标硬件。但需要将RTT使用到的一些文件添加到项目工程中。关于RTT技术的原理和一些配置选项可以参考文章(点击查看➡):[color=var(--weui-LINK)]高性能的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控制块的内存地址。
    1.png
    02

    自动搜索RTT控制块失败
    但是如果某些芯片比较特殊,或者偶然出现了无法自动搜索到RTT控制块的情况,可以在创建J-Scope工程的时候添加J-Link脚本文件(*.script格式文件)来指定RTT控制块的搜索位置。
    2.png
    在J-Link脚本中可以通过以下两种命令来指定RTT控制块的搜索方式。
    (1)手动指定控制块的确切地址,具体地址在map文件中搜索获得。
    · SetRTTAddr命令
    示例:SetRTTAddr 0x20000000
    (2)指定J-Link搜索控制块的内存范围,设定的内存范围需要涵盖RTT控制块的内存范围。
    · SetRTTSearchRanges
    示例:SetRTTSearchRanges 0x10000000 0x1000, 0x20000000 0x1000
    关于J-Link scrip脚本文件的详细介绍可以参考此文章(点击查看➡):[color=var(--weui-LINK)]J-Link script文件的作用与用法
    除了RTT实时传输技术,Segger J-Link script脚本文件中支持的配置命令允许用户对烧录过程进行自定义,从而使J-Link能够更好的适配多类型的芯片和复杂条件下的烧录需求,如果您对J-Link系列调试工具感兴趣,欢迎咨询info@bmrtech.com

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 20:52 , Processed in 0.122761 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.