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能够更好的适配多类型的芯片和复杂条件下的烧录需求。
深度解析鸿蒙内核最重要的结构体
数字化仪概述用途
如何使用Microchip模块实现LoRaWAN物联网应用
基于以太网控制器NC28J60和HR901170A实现以太网通信
互联网即将消失 智能网关助力物联网崛起
如何在J-Scope中设置RTT控制块的搜索位置?
如何测试证明电源效率可以满足法规标准
前瞻2019全球半导体行业并购的趋势
ST推出与机顶盒芯片紧密集成的智能家居软件平台
消弧线圈的结构和作用是什么
DshanMCU-R128s2硬件设计参考
场效应管基础知识
宏微科技:预计明年营收增速不低于50%
如何正确选择/使用万用表
索尼和雅马哈联手打造自动驾驶汽车
八触控 BCD 输出 IC的主要特征是什么
铲屎官的清洁福音,追觅科技吸走养宠困扰
三星GalaxyNote9的设计有哪些新突破
能讯半导体基站发射系统发明专利揭秘
机智云IoT开发平台助力企业打造定制化工业互联网系统