JLINK-rtt使用经验
- 格式:doc
- 大小:69.50 KB
- 文档页数:2
jlink使用方法jlink使用方法详解什么是jlink?jlink是Java 9中引入的一个新工具,用于创建自定义的JRE (Java Runtime Environment)。
它允许您通过选择和排除需要的模块,以及优化所需的资源,创建一个更小更快的JRE。
使用jlink创建自定义JRE的步骤1.安装Java 9或更高版本确保您已经安装了Java 9或更高版本的JDK。
2.找到所需的模块您可以使用jdeps工具来分析您的应用程序,并找出它所依赖的模块。
例如,要分析一个名为``的应用程序,使用以下命令:jdeps --list-deps此命令将列出``所依赖的所有模块。
3.创建自定义JRE使用jlink命令创建自定义的JRE。
以下是一个基本的jlink命令示例:jlink --module-path <path-to-modules> --add-modules<module1>,<module2>,... --output <output-path>•<path-to-modules>:指定包含所有模块的路径。
•<module1>,<module2>,...:指定需要的模块的列表。
•<output-path>:指定输出自定义JRE的路径。
例如,要在C:\myjre目录中创建自定义的JRE,该JRE仅包含和模块,可以使用以下命令:jlink --module-path <path-to-modules> --add-modules , --output C:\myjre4.运行应用程序使用创建的自定义JRE来运行您的应用程序。
例如,在上一个步骤中创建的自定义JRE的路径为C:\myjre,要运行``,可以使用以下命令:C:\myjre\bin\java -jar注意:确保您的应用程序中使用的模块在自定义JRE中是可用的,否则应用程序将无法正常运行。
Jlink安装使用说明
一、安装
1、解压jlink至任意位置。
解压完成后包含以下三个文件。
2、双击Setup_JLink_V490.exe。
点击YES
点击next
选择位置后点击next
四个全部勾选点击next
点击next
等待安装完成
点击cancel
点击finish
桌面生成此图标
二、使用说明
双击桌面图标
选择create a new project
点击start-J-Flash
选择project setting…
界面配置1 配置完成点击应用
界面配置2 配置完成点击应用
依次点击红圈内选项,跳出如下界面:
选择红圈中条目点击OK
选择红圈中条目点击确定
点击connect
跳出下图connect succeeessful
点击open data file…
选择.hex
选中要烧录的hex文件点击打开
跳出如下界面
点击auto
等待第一次进度条完成
等待第二次进度条完成
出现最终成功界面程序烧录完成。
jlink命令调用方法jlink命令用于将JDK的某个模块及其依赖项打包成一个可执行文件。
以下是jlink命令的调用方法:1. 打开命令提示符窗口(Windows)或终端窗口(Linux/macOS)。
2. 输入以下命令的基本格式:jlink module-path <module path> add-modules <module name> output <output location>其中:- `<module path>` 表示JDK的模块路径。
- `<module name>` 表示要打包的模块名称。
- `<output location>` 表示输出文件夹的路径。
示例:jlink module-path %JAVA_HOME%\jmods add-modules java.base output myimage3. 运行命令后,jlink将会从模块路径中找到指定的模块及其所有依赖项,并将它们打包成一个自包含的运行时镜像。
4. 在打包完成后,可以在输出文件夹中找到生成的运行时镜像。
附加选项:- `launcher <name>=<module>/<class>`:指定生成的运行时镜像中的启动器。
可以使用该启动器来直接运行模块中的特定类。
- `compress <level>`:指定压缩级别。
可选的压缩级别有`0`(不压缩),`1`(快速压缩)和`2`(最佳压缩)。
- `strip-debug`:去除调试信息以减少镜像大小。
- `no-header-files`:不包含标准C头文件。
- `no-man-pages`:不包含手册页。
注意:jlink命令在JDK 9及以上版本中可用。
Jlink在MDK下使⽤J-link_J-trace模式开发STM32的说明Jlink V7在MDK下使⽤J-link/J-trace 模式开发STM32的说明说句实话,STM32的官⽅程序库⽤起来真是有点⿇烦,绕来绕去的,初学者很容易犯迷糊。
求⼈不如靠⾃⼰啊,经过⼀晚上的摸索,终于⾃⼰在MDK开发环境下建⽴了⾃⼰的⼯程,⾛马灯也跑起来了,呵呵呵....开发环境:STM32F103RB(128K Flash 20K RAM)+MDK3.40PRC+JLINK V70.驱动安装安装Segger jlink V4.02驱动,安装在c:\Program Files\SEGGER\JLinkARM_V402插上jlink V7,可⾃动安装上驱动。
执⾏J-link command,查看版本。
如果已经连上⽬标板,可显⽰⽬标处理器信息。
也可以使⽤mdk中的驱动,在c:\keil\ARM\Segger\USBdriver1.建⽴MDK⼯程(1)选择STM32F103RB 并加⼊STARTUP⽂件,这⼀步就不⽤细说了吧,⽤过keil的⼈都会。
(2)⼯程中选择Options for target ‘xxx’,选择器件STM32F103RB(3) 配置Jlink:按照下图配置即可时钟改成1MHz以上,也是可以的,⽐如2MHz,明显编程速度会快些。
需要试验最⾼时钟速率。
这样,⼀个可以⽤Jlink调试的MDK⼯程就建⽴好了,接下来我们加⼊我们的C⽂件就可以开始调试了。
2 编写程序C⽂件源码如下:#define GPIOC_CRL (*((unsigned int *)(0x40011000)))#define GPIOC_BSRR (*((unsigned int *)(0x40011010)))#define GPIOC_BRR (*((unsigned int *)(0x40011014)))#define RCC_APB2ENR (*((unsigned int *)(0x40021018)))void delay(void){unsigned int i;for(i = 0; i < 0xffff; ++i);}int main(void){{RCC_APB2ENR |=(1<<2); //使能PORTA时钟GPIOA_CRL = 0x44444422;//PA0,1配置为输出while(1){GPIOA_BSRR |= BIT0;GPIOA_BRR |= BIT0;delay();GPIOA_BRR |= BIT0;GPIOA_BSRR |= BIT1;delay();}}如此,⼀个简单的⾛马灯程序就完成了,⽐起官⽅库,容易理解多了,呵呵。
JLINK使⽤教程详解,以及与JTAG区别对于⼀个新⼿来说,⼀切都不容易。
⽽从头学起也是⼀件⾮常美好的事。
调试ARM,要遵循的调试接⼝协议,JTAG就是其中的⼀种。
当仿真时,IAR、KEIL、ADS等都有⼀个公共的调试接⼝,RDI就是其中的⼀种,那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢?有以下两种做法:1.在电脑上写⼀个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后⼀个物理转换接⼝(注意,这个转换只是电⽓物理层上的转换,就像RS232那样的作⽤)发送你的的⽬标板。
H-JTAG就是这样的。
H-JTAG的硬件就仅是⼀个物理电平的转换接⼝,所以很简单。
⽽电脑中装的h-JTAG软件就是前⾯说到的服务程序,负责协议转换的。
2.做⼀个板,⽤此板直接接收来⾃IAR、KEIL和ADS等软件的调试命令,由此板做RDI->JTAG协议的转换。
然后与⽬标板通信,这就是JLINK的⼯作原理。
由上可以看出H-JTAG由于是软件作协议转换的,所以速度较慢,但是硬件简单。
⽽第⼆种⽅法的JLINK⼀般带⼀个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。
JTAG的基本原理JTAG(JointTestActionGroup,联合测试⾏动组)是⼀种国际标准测试协议(IEEE1149.1兼容)。
标准的JTAG接⼝是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输⼊和数据输出线。
JTAG的主要功能有两种,或者说JTAG主要有两⼤类:1)⼀类⽤于测试芯⽚的电⽓特性,检测芯⽚是否有问题;2)另⼀类⽤于Debug,对各类芯⽚以及其外围设备进⾏调试;⼀个含有JTAGDebug接⼝模块的CPU,只要时钟正常,就可以通过JTAG 接⼝访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。
本⽂主要介绍的是Debug功能。
JTAG原理分析简单地说,JTAG的⼯作原理可以归结为:在器件内部定义⼀个TAP(TestAccessPort,测试访问⼝),通过专⽤的JTAG测试⼯具对内部节点进⾏测试和调试。
jlink的使用方法摘要:一、JLink简介二、JLink的安装与配置1.安装步骤2.配置方法三、JLink的使用方法1.连接设备2.烧写固件3.调试代码4.监控运行状态四、JLink的高级功能1.断点调试2.数据观察3.性能分析五、JLink的优缺点1.优点2.缺点六、总结与建议正文:一、JLink简介JLink是一款由SEGGER公司推出的硬件调试工具,广泛应用于嵌入式系统的开发与调试。
它支持多种处理器架构,如ARM、MIPS、AVR、STM32等,为开发者提供了便捷的编程与调试解决方案。
二、JLink的安装与配置1.安装步骤JLink的安装过程相对简单,只需遵循以下步骤:(1)下载JLink软件及驱动程序。
(2)安装JLink软件。
(3)根据设备类型及操作系统安装对应的驱动程序。
2.配置方法(1)打开JLink软件,设置目标设备型号、操作系统、调试器型号等参数。
(2)配置调试串口号、波特率等通信设置。
(3)连接设备并验证连接。
三、JLink的使用方法1.连接设备将JLink连接到目标设备,确保设备上电。
在JLink软件中配置好设备参数后,点击“Connect”按钮建立连接。
2.烧写固件在JLink软件中选择固件文件,点击“Download”按钮进行烧写。
烧写完成后,设备将自动重启。
3.调试代码在JLink软件中打开调试器,设置断点、监视变量等参数。
然后点击“Run”按钮,即可开始调试代码。
4.监控运行状态在调试过程中,可通过JLink观察运行状态、实时数据、内存使用情况等。
此外,还可使用JLink进行性能分析,找出代码中的瓶颈。
四、JLink的高级功能1.断点调试JLink支持断点调试,可以帮助开发者定位代码问题。
设置断点后,程序运行到断点位置时会自动暂停,方便进行调试。
2.数据观察JLink可以实时观察变量值、寄存器值等数据,便于分析程序运行状态。
3.性能分析JLink提供性能分析功能,可统计代码执行次数、执行时间等,帮助开发者优化代码。
S E G G E R -R T T经验萃取使用仿真器代替串口打印调试方法Roger.WY2020/02/14目录conten t “”Part 01引言Part 02RTT 简介Part 03RTT 的使用方法Part 04RTT 的使用总结1引言让我们来认识一下一个新的工程调试利器!引言串口作为经典的调试方式已经存在好多年了,缺点是需要一个专门的硬件接口。
现在有了SEGGER的RTT,无需占用系统额外的硬件资源,而且速度超快,是替代串口调试的绝佳方式。
2RTT简介Real Time Transfer2.1 什么是RTT?SEGGER的Real Time Transfer (RTT)是一项新技术,可以在嵌入式应用中进行用户I/O交互。
它结合了SWO和半主机的优点,具有极高的性能。
它的主要特点:➢可以与目标应用进行双向通信.➢极高的传输速率,同时不影响应用的实时响应.➢在目标板上不需要额外的硬件或引脚.➢在任何J-Link模式下都能正常使用.➢ARM Cortex-M0/M0+/M1/M3/M4/M7和Renesas RX100/200/600都支持➢有完整的代码来提供需要的功能和灵活的自由度.2.2 RTT是如何工作的?RTT利用了目标芯片内存上的SEGGER RTT 控制块来管理数据的读写。
控制块包含有一个ID号,这样接上J-Link之后,就可以在内存中发现控制块,并且为每个可用通道都提供了一个一个环形缓冲区结构体,用来描述通道缓冲区及其状态。
可用通道的最大数量可以在编译时进行配置,并且每个缓冲区都可以在运行时由应用程序进行配置和添加。
上行和下行缓冲区可以分开处理。
每个通道可以配置为阻塞或非阻塞。
在阻塞模式下,当缓冲区已满时,应用程序将等待,直到有空间可以写入数据,虽然应用程序状态被阻止,但可以防止数据丢失。
在非阻塞模式下,只有不超过缓冲区大小的数据被写入,其余的数据将被丢弃。
即使没有连接调试器,也可以实时运行。
jlink使用技巧
J-link是一种仿真器,在使用时有一些小技巧可以参考,具体如下:
- 读取MCU各类信息:当无法使用仿真器时,可输入“connect”并回车来判断是无法连接仿真器还是无法连接芯片。
若当前显示的芯片不是想要的目标芯片,可输入“?”并回车来进行芯片的选择。
选择芯片型号后,若是JTAG则输入“j”,若是SWD则输入“s”,点击回车输入指令,成功连接后可以使用各类指令。
- 直接读取故障件数据:通过j-link直接读取的方式,在不破坏当前状态的情况下获取相关寄存器/Flash/RAM中的数值,进行初步的故障判断。
- 开启J-link虚拟串口功能:首先确定J-LINK固件版本为V9以上,在SWD模式下,通过安装J-Link Commander软件并输入相应指令来开启该功能。
如需了解更多关于J-link的使用技巧,可以继续向我提问。
Jlink RTT使用说明
单片机进行调试,一般都会分配出来一个调试的串口,如果单片机使用jlink烧录器,那么可以使用调试工具-RTT来代替串口进行信息的交互,不需要使用串口。
RTT(Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。
J-Link驱动4.90之后的版本都支持RTT。
需要安装J-Link驱动4.90之后的版本
1、使用JLINK SEGGER RTT打印调试信息
然后将这四个文件添加到自己工程中去,并且在主程序工程中包含SEGGER_RTT.h文件。
然后我们就可以直接在主函数中调用SEGGER_RTT_printf函数来打印调试信息了,该函数用法和printf函数类似,只是多了一个参数用来指定RTT通道。
其中通道0,就是我们在调试时使用的通道。
在主函数中添加如下代码即可打印信息。
SEGGER_RTT_printf(0,"Times %d\r\n",++u32Counter);
这个函数不支持浮点数,如输出浮点数可以先使用sprintf输出到缓存,再使用SEGGER_RTT_WriteString输出。
char rtt_out_str[80];
sprintf(rtt_out_str,"FloatValueIs%f;\n",var_float);
SEGGER_RTT_WriteString(0,rtt_out_str);
单独打开RTT VIEWER 可以使用
如果打开JLinkRTTClient,必须同时打开RTT VIEWER 才可以使用
2、RTT输入检测
首先在程序中添加SEGGER_RTT_Read(0,rtt_buf,sizeof(rtt_buf));
其次在J-Link RTT Viewer控制台的Input里面选择Sending/Send on Enter,然后End of Line 选择None
这样就可以通过下方输入框输入信息,按Enter发送
RTT VIEWER input设置
Win10自带的截图功能非常好用,快捷键Win + Shift + S。