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)\SEGGER\JLink\JLink.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:\Work\MyFile.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文件重名名为:<ProjectName>_<DebugConfig>.jlink,并放置在工程目录的settings目录下,然后IAR进入调试时会自动调用:
IAR项目的每个构建配置都有一个设置,例如默认的Debug和Release。
|
keil安装pack中提示Encountered an improper argument. 如何解决
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
STM32745/747芯片固件升级问题
使用了STM32H743的MCU,程序启动卡在了while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U),外部低速时钟用示波器测量可以正常起振,电容容值12pF。
STM32 开发环境用哪个呢?
stm32h743vit芯片在使能dma1时钟之后,sram_d2的内容会改成其他值
IAR烧录flash出错,提示Failed to load flash loader.D:\workspace\...\firmware\FlashRN8xxx 128KB.flash
IAR使用JLINK进行Debug时出现错误
Stm32h745使用Jlink遇到的问题
求助,STM32cubeIDE对从MDK运行正常的程序移植过来进行仿真总是进入Default_Handler