0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

J-Link script的组成

strongerHuang 来源:麦克泰技术 作者:麦克泰技术 2021-03-09 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

J-Link作为被广泛使用的调试器,提供了多种配套的软件工具。例如命令配置软件J-Link Commander,GDB server,J-Flash等。其中,J-Link Commander支持一种类C的脚本语言,称作J-Link script。

J-Link script

脚本语言不需要编译,它由解释器动态解释执行。J-Link Commander(路径C:Program Files (x86)SEGGERJLinkJLink.exe)是一个解释器,负责对J-Link script文件进行解释。

一般情况下可能不需要特别的操作就能通过J-Link连接到目标系统,进行代码下载或者调试。但某些情况下需要J-Link来执行一些自定义的操作,比如多核芯片的JTAG链的配置,硬件需要一些特殊的处理等。这些操作需要由用户根据自己的实际情况来定制,所以需要使用脚本来进行编写。

J-Link script的组成

J-Link script包括了基本语法、自定义操作、API函数,DLL全局常量/变量。

J-Link script的语法与C语言类似,支持C语言中大多数的的语句,例如if else,while,变量声明等等。详细的语法可参考:

https://wiki.segger.com/J-Link_script_files#Script_file_language

脚本文件支持允许定制J-Link执行的不同操作。根据脚本文件中是否存在相应的函数,一般实现的操作将被脚本文件中定义的操作所替代。下面列出并解释了所有可以使用脚本文件定制的J-Link操作。

这些操作会被用户的J-Link script中的替代,在不同的时机触发这些操作。关于每个操作的具体解释可以参考:

https://wiki.segger.com/J-Link_script_files#Customizable_actions

DLL全局常量/变量是用于J-Link DLL配置用途的全局常量/变量。脚本中的常量和变量会被传递给DLL,例如用于设置CPU型号,JTAG链,调试组件CoreSight的基地址。全局常量目前仅用于设置DLL全局变量CPU。

支持的常量列表:

https://wiki.segger.com/J-Link_script_files#Global_DLL_constants

支持的变量列表:

https://wiki.segger.com/J-Link_script_files#Global_DLL_variables

API函数是一组内置接口,用于跟DLL通信,使用DLL的诸多底层操作。例如,JLINK_MEM_WriteU32()是往指定的地址写入一个32位的数据。API函数列表:

https://wiki.segger.com/J-Link_script_files#Script_file_API_functions

使用J-Link script文件

J-Link script文件有两种类型:

· 明文脚本文件(*.JLinkScriptFile)

· 预编译脚本文件(*.pex)

*预编译脚本文件用于用户不想公开所编写的操作。

通过J-Link Commander执行J-Link script

命令格式:

JLink.exe -JLinkScriptFile C:WorkMyFile.JlinkScript

在IDE中使用J-Link script文件

J-Link script可以与常见的IDE(IAR/Segger SES/Keil/Eclipse)配合使用,以IAR EWARM为例,使用J-Link script有两种方法。

方法1:在工程设置项Debugger->Extra Options中勾选“Use command line options”,然后使用命令“--jlink_script_file=”命令指定目录中的.JlinkScriptFile。

方法2:将J-Link script文件重名名为:_.jlink,并放置在工程目录的settings目录下,然后IAR进入调试时会自动调用:

IAR项目的每个构建配置都有一个设置,例如默认的Debug和Release。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4985

    浏览量

    74578
  • J-Link
    +关注

    关注

    0

    文章

    91

    浏览量

    24137
  • 解释器
    +关注

    关注

    0

    文章

    103

    浏览量

    7035

原文标题:J-Link script文件的作用与用法

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NXP KW45B41Z-EVK 板将 J-Link/CMSIS-DAP 固件刷新到板上的问题求解

    你好 我正在尝试使用 NXP KW45B41Z-EVK 板。但是,继续使用他们的用户指南页面(KW45B41Z评估套件入门 |恩智浦半导体),我遇到将 J-Link/CMSIS-DAP 固件刷新
    发表于 05-26 06:01

    无法通过 J-Link SWD 连接到定制板上的S32K144, “在 Coresight setu 中找不到内核,怎么解决?

    我正在使用使用 S32K144 MCU 的定制板并尝试通过SEGGER J-Link使用 SWD。 我在连接 JLink.exe(或通过 S32 Design Studio)时遇到
    发表于 04-28 06:21

    用于在FRDM-i.MX93上调试Cortex-M33的推荐J-Link 型号?

    大家好 我正在使用 FRDM-I.MX93 开发板,目标是 Cortex-M33(实时内核)。我已经通过AN14120和一些社区讨论,我知道通过 SWD(P14 标头)上的 J-Link 支持调试
    发表于 04-22 06:56

    昂瑞微OM662X系列MCU正式获得SEGGER J-Link/Flasher支持

    北京昂瑞微电子技术股份有限公司(以下简称为“昂瑞微”)宣布,其OM662X系列实时控制MCU已正式完成与微控制器调试下载与量产编程工具厂商SEGGER旗下J-Link调试器及Flasher 编程器的生态适配。相关型号现已上线至SEGGER官网支持设备列表。
    的头像 发表于 04-16 11:38 2439次阅读

    【教程】CW32之使用J-Link烧录.hex文件

    在平时调试时,我们也可以使用DAP-Link、ST-Link等进行烧录和Debug,使用方法和STM32类似。然而当我们手头只有hex文件(或bin文件)时,可以尝试使用J-Link进行烧录。
    的头像 发表于 04-01 16:56 3447次阅读
    【教程】CW32之使用<b class='flag-5'>J-Link</b>烧录.hex文件

    当在S32K324的VDD_HV_A和V15之间使用外部双极结型晶体管(BJT)时,J-Link无法读取寄存器值,怎么处理?

    VDD_HV_A和V15之间使用的外部双极结型晶体管(BJT)的示意图如上图所示。 根据上面的原理图,当 ConfigRegister 中的 LMBCTLEN 字段设置为 1 时,J-Link
    发表于 03-24 08:20

    使用 J-LINK 调试时发生错误,是什么原因导致的?如何解决?

    使用J-Link调试时发生错误,如图所示。我应该如何解决这个错误?
    发表于 02-26 10:08

    多多盒子助手 J-link RTT实时助手 串口助手 波形图显示非常好用的工具

    曲线增益调节 - 各通道独立增益和偏置调整 多协议多设备支持 串口调试 - 完整串口参数配置(波特率、数据位、校验位等) J-Link集成 - 内置SEGGER J-Link,支持RTT实时
    发表于 12-12 09:26

    CWDAPLINK与J-link下载有什么区别?哪一款比较好?

    CWDAPLINK与J-link下载有什么区别?哪一款比较好?
    发表于 12-02 06:06

    使用J-Link Attach NXP S32K3导致对应RAM区域被初始化成0xDEADBEEF

    在IAR Embedded Workbench for Arm中使用J-Link Attach NXP S32K3的时候,会提示对应RAM区域被初始化成0xDEADBEEF,导致对应RAM区域的数据被“篡改”。
    的头像 发表于 11-03 15:26 5692次阅读
    使用<b class='flag-5'>J-Link</b> Attach NXP S32K3导致对应RAM区域被初始化成0xDEADBEEF

    生态芯进阶 | SEGGER J-Link/Flasher深度适配极海G32R50x系列实时控制MCU!

      近日,SEGGER 宣布通过J-Link Prime芯片伙伴计划, 其“开盒即用”的 J-Link调试器和Flasher编程器,已完成对极海G32R50x系列实时控制MCU的生态适配。 深度适配
    的头像 发表于 09-22 14:23 1514次阅读
    生态芯进阶 | SEGGER <b class='flag-5'>J-Link</b>/Flasher深度适配极海G32R50x系列实时控制MCU!

    【RA4E2开发板测评】MDK程序开发+J-LINK下载-&gt;RA4M2配置方法

    习惯STM32开发转RA4M2开发的童鞋可能更习惯MDK和采用J-LINK实现开发和调试。 1.使用配置工具配置端口(类似于STM32CUBEMX) 型号选型和开发环境选择设置 2配置GPIO口
    发表于 08-31 13:55

    是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?

    是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?
    发表于 07-31 06:31

    使用Segger J-Link Pro对XMC7200的CM0+内核进行编程遇到的问题求解

    当我使用 GNU C 编译器编译起始(.text)地址为 0x10000000 的 CM0+ 程序时,我无法在 Segger J-Link Pro 中下载该程序。我在输出窗口中收到一个空白的错误弹出
    发表于 07-21 06:05

    SEGGER J-Link调试器支持Allegro微控制器

    SEGGER领先的J-Link调试器现在可用于Allegro MicroSystems MCU的程序下载和在线调试。有了J-Link的支持,结合Ozone多平台调试器,以及Flasher系列的专业在线编程器,技术人员可以实现A892xx的应用开发和生产编程。
    的头像 发表于 06-10 09:29 1652次阅读