JLINK在ADS下调试心得
Jlink 调试

如何使用Jink 调试 Mini INS/GPS本文档主要解决以下问题:1. Mini INS/GPS的SWD仿真接口的定义2. Jlink 仿真器如何连接SWD仿真接口3. 如何使用Jflash 下载目标HEX格式文件4. 如何使用J link 仿真和调试程序为了方便用户调试姿态解算程序,Mini INS /GPS 提供了SWD 调试接口。
它只需要4个引脚就可以仿真和调试STM32F 的程序。
1. SWDIO 数据通信引脚2. SWDCLK 时钟引脚3. GND 公共地,需要与仿真器的地连接在一起4. VCC 3.3V 电源,有的仿真器用于检测目标芯片是否已上电。
以下是SWD 仿真接口在Mini INS/GPS 板子上的位置和引脚定义Mini INS /GPS 的SWD 调试接口双色状态指示LEDSWD 调试接口Jlink 仿真器的接口SWD 接口Jlink 仿真器J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。
配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。
Jlink 是分版本的,只有Jlink V6 或者更高版本的Jlink 才支持SWD 接口目前市面上的大都是Jlink V8版本,这是完美支持SWD 调试的注意:SWD 数据SWD 时钟目标板电压目标板GND只需连接其中一个就可Mini Jlink 与模块的连线图如下Mini Jlink 的应用Mini Jlink 功能:1.支持SWD调试,支持STM32F系列单片机的仿真2.只需要三条线,就可以进行芯片的下载程序和仿真操作 大大减少IO连接3.兼容 JLink的SWD调试部分。
特别提示:Mini Jlink并不向目标板提供电源,在编程和仿真时,目标板必须自行连接电源Jlink 与 Mini IMU 的SWD接口连接如何使用 Jflash 将已编译好的Hex下载到STM32单片机JFlash是Jlink驱动安装时就已经安装好,专门用于写处理器Flash数据的。
JLINK使用教程详解

第二步
第三步
烧写FLASH
1、连接实验板
烧写FLASH
2、加载要烧写的.bin文件
烧写FLASH
3、Program
祝大家学习愉快!
这个根据需要选择,若不确定就选择自动。
配置jlink工程
菜单>Options>Projiect settings 2、CPU 指定CPU并初始化 加快烧写速度
初始化寄存器 五条全部添加
配置jlink工程
菜单>Option 指定FLASH型号
第一步
目的:选择与ARM核相匹配的汇编代码编译器
配置ADS工程
菜单>Edit>DebugRel Settings
2、ARM C Compiler
目的:选择与ARM核相匹配的C代码编译器
配置ADS工程
菜单>Edit>DebugRel Settings
3、ARM Linker(Output)
目的:设置代码段的起始地址为RAM的起始地址。
在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly); 可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为 零的变量被称为ZI段(ZeroInit)。
配置ADS工程
菜单>Edit>DebugRel Settings 3、ARM Linker(Layout)
目的: 1、指定放置在可执行文件开头的目标文件为init.o 2、指定放置的逻辑段的段名为init(本例中init为代码段)
配置ADS工程
菜单>Edit>DebugRel Settings init.o ? 汇编结束后,生成多个目标文件,一般是一个源代码文件生成一个 目标文件(头文件除外),然后由链接器来把这些目标文件链接成一个 可执行的二进制代码文件。这个文件可用来调试或者烧写到ROM中。 编译 Init.s Main.c …… Init ? CODE32 AREA Init,CODE,READONLY ENTRY ;指定程序入口地址 Init.o Main.o …… 链接 Init.o Main.o .bin/.axf. .hex/.elf …… ……
STM32RVMDKJLINK下flash和RAM调试方法

STM32RVMDKJLINK下flash和RAM调试方法stm32f107vc开发板,uvision V4.00u,JLINK V8,J-Link ARM V4.08l。
flash 下调试方法:1.打开要调试的工程,左栏工程上右击options for target。
进入debug中选择jlink.2. utility中选择jlink.3. 用JLINK连接PC和开发板,打开开发板电源。
进入旁边的settings,添加flash烧写方法。
4。
一路OK回去,rebuild,ctrl+F5进入调试,可以单步和断点。
根据ST公司的reference manual 2.3.3 embedded flash,知道flash 的地址从0x0800 0000开始。
在调试窗口中看到汇编的地址为0x0800开头,说明代码段烧进了flash。
SRAM下调试方法:1. 将Keil安装目录下D:/Keil/ARM/Boards/Keil/MCBSTM32/STLIB_Blinky的ram.ini拷贝到需要调试的工程目录下,并把需要载入的文件改为需调试工程AXF 文件的位置和名称,此处工程为GPIO。
2. 根据reference manual 2.3.1,SRAM的起始地址为0x2000 0000。
要将代码段放入SRAM中,必须设置程序只读段从SRAM起始位置开始,一定长度(此处设置为0X4000)后,数据段RAM开始。
注意两端的长度不能超过SRAM的总大小。
3. 同flash下调试的步骤1和2,选择jlink。
4. 在debug页下添加ram.ini。
5. 选择不要擦除flash,修改代码段和数据段的位置和大小。
6. 一路OK,rebuild,ctrl+F5进入调试。
可以单步,step in和断点。
看汇编代码的位置,以0x2000开头,说明程序运行在SRAM 中。
另外,查看工程目录下的.sct文件,如下。
LR_IROM1 0x20000000 0x00004000 { ; load region size_regionER_IROM1 0x20000000 0x00004000 { ; load address = execution address*.o (RESET, +First)*(InRoot$$Sections).ANY (+RO)}RW_IRAM1 0x20004000 0x00004000 { ; RW data .ANY (+RW +ZI)}}说明的确已经把程序配置到SRAM空间。
ADS环境下用JLink烧写LPC2210外部Flash

ADS环境下用JLink实现LPC2210外部Flash调试软件环境:Windows 7/ADS v1.2/JLink v4.08h硬件环境:EasyArm2200开发板(LPC2210/SST39VF1601)/JLink v7一、往外部Flash里烧写程序1、连接EasyArm2200开发板、JLink,设置跳线JP6为Bank0-Flash,Bank1-Ram。
2、打开ADS,加载工程,设置调试模式为RelOutChip,然后点击右面的RelOutChip Settings,做以下设置:设置后点击Make,则会在你所选择的位置(如D:\Led.hex)生成该文件。
如有提示需要relink,点击确定即可。
3、打开JLink安装目录下的JFlashARM.exe,打开时一般会自动加载上次运行时的jflash 文件,此时可以关闭除了Log窗口外所有的小窗口。
下面是建立烧写需要的jflash文件。
(附件中提供已制作好的工程文件EasyArm2200.jflash,可以直接选择Files-Open加载该工程文件,跳过本步骤剩下部分)。
该文件制作步骤如下:选择File-New Project,然后Option-Project Setting,需要修改CPU、Flash两个选项卡:Flash选项卡中,去掉Automatically detect flash memory前面的√,选择SST39VF1601。
选择后如下所示:然后选择File-Save project,保存后下次可以直接加载。
4、选择Target-Connect,下面的Log框会出现提示连接成功,如图:然后选择Files-Open,打开第2步生成的hex文件(如D:\Led.hex)。
修改起始地址为0x00000000,如图所示:然后按F5,烧写程序。
如有提示需要verify或relocation,点击确定即可,成功后Log框提示如下:此时,程序已经可以脱机运行。
ADS到keil4.12移植,使用Ulink2 下载调试

ADS1.2到keil4.12移植,使用Ulink2 下载调试总结:1、如下图LPC2000的下载接口电路可兼容ADS1.2 Jlink 和 keil 4.12 ulink2的下载调试。
J220PIN1234567891011121314151617181920RS TTDI TMS TCK TDO RS TVCCLPC2000的下载接口2、ADS1.2的编译配置选项,移植到keil 4.12的对配置文件要做对应的修改。
ADS1.2的编译配置当移植到keil 4.12的对配置文件要做对应的修改,见下图keil 4.12的编译配置keil 4.12的编译配置3、ADS1.2的连接配置选项,移植到keil 4.12的对配置文件要做对应的修改。
ADS1.2的连接配置Keil 4.12的连接配置4、LPC2000的模板有Debug in ChipRAM、Debug in ExtRAM、Debug in ChipFLASH、Release in ChipFLASH 3个目标环境。
1.Debug in ExtRAM在外部RAM调试。
●入口地址:0x80000000●分散加载文件:mem_b.scf●初始化文件:debug_in_ExtRAM.ini●宏定义:__DEBUG2.Debug in ChipFLASH在片内FLASH调试(LPC2210没有片内FLASH)。
●入口地址:0x00000000●分散加载文件:mem_c.scf●初始化文件:无●宏定义:__IN_CHIP3.Release in ChipFLASH●入口地址:0x00000000●分散加载文件:mem_c.scf●初始化文件:无●宏定义:__IN_CHIP EN_CRP在RAM中调试,需要内部RAM的ini文件,主要功能是初始化PC的值,至于外部RAM,则还需要初始化外部总线控制器。
如果在初始化文件用load命令装载了axf文件的话,则界面不需再选择Load Application at sta,如果ini文件已经有.g main命令,则界面配置不需要再选中Go till main。
J-LINK安装说明

关于J-LINK在ADS1.2中使用的方法说明经测试J-LINK ARM在笔记本电脑中的ADS1.2环境下可以使用。
系统:win7,XP软件:ADS1.2J-LINK驱动版本:win7下使用Setup_JLinkARM_V410i;XP下使用Setup_JLinkARM_V408l。
初始化方式如下:1、安装J-LINK驱动,安装完成后将J-LINK驱动安装目录下的JLinkARM.DLL文件复制到ADS1.2软件根目录下的bin文件夹中。
2、打开AXD debugger软件,选择菜单options->configure target,在对话框中单击ADD,选择J-LINK驱动根目录下JLinkRDI.dll文件。
3、初始化:(1).如何做初始化?步骤: 进入ADS,选System Views,在下拉菜单中选Command Line Interface,在程序显示窗口下会出现Command Line Interface界面,在Debug >后输入"obey 初始化文件存放路径(最好不要含中文路径)",如:Debug >obeyE:\Smartarm2200\LPC2200.txt,然后回车即可注意:初始化要在编译之前做好,并且要清除options-->Configure Processor中的所有选项,主要是在Vector catch项选Clear All,去掉Semihosting前的对号,因为这两项会影响硬件断点的设置.(2).如何保存初始化?步骤:接上步做完初始化后,点options-->Congfigure Interface..-->在弹出的对话框中选Session File菜单-->选中Reload Images和Run Configuration Script,并点Browse 将路径指到初始化文件存放的目录.Flie-->Save Session将所做的初始化保存,扩展名为.ses 下次打开ADS时会自动加载上次保存的初始化,要加载别的初始化,点Flie-->Load Session,指到所要加载的初始化存放目录即可.这样将初始化保存后,每次只要加载保存的.ses文件即可,避免了每次都要敲入命令的麻烦.完成上述步骤即可使用。
关于J-LINK支持JTAG和SW两种调试模式的问题
关于J-LINK支持JTAG和SW两种调试模式的问题
最近自己焊了一块STM32F103系列的板子,使用的是J-LINK V8仿真器,看到官网的参考手册中关于调试支持的说明,原文是这样说的:(参考ST官网RM0008)
由于担心两种模式切换时出错,所以在焊接电路板时还是选择了稍复杂JTAG-DP 接口,然而在焊接完成后发现,SW模式同样可用,那我岂不是做了无用功?一思考发现问题肯定出现在J-LINK上。
在查过J-LINK各版本的区别过后,发现是自己OUT了,原来J-LINK在V5.x 版本固件升级后性能得到极大提升,可同时支持JTAG和SW两种模式,这样MCU的接口得到了更多的解放,调试时两种模式随你切换,关于这两种模式的接口方式,网上很多,在此不再赘述。
关于手工焊接后使用J-LINK不能顺利下载的问题,如果软件没做过这方面的配置,一般还是电路焊接问题,仔细检查VDDA、VSSx等是否上电,特别是
VDDA,虽然是ADC模块使用这个参数,但VDDA引脚不上电J-LINK是百分之九十是检测不到单片机的。
——昊哥爱装13。
芯达STM32入门系列教程之三《如何使用J-Flash调试》
STM32入门系列教程如何使用J-Flash调试Revision0.01(2010-04-12)对初学者来说,要进行STM32的程序下载调试,一般有三种方法:(1)使用SEGGER J-Flash(J-Link)下载程序到闪存中运行;(2)使用串口ISP来下载HEX文件到CPU中运行;(3)J-Link+MDK组合,来在线调试程序(可下载、调试)。
本文档讲述如何在芯达STM32开发板上使用SEGGER J-Flash下载HEX文件。
而其他两种方法,我们将在文档《如何使用MDK+J-Link调试》、以及《如何使用STM32-ISP下载调试》中详细说明。
先来解释SEGGER。
实际上,大家更为熟悉的ARM仿真器J-Link,就是由SEGGER公司开发的。
J-Link是SEGGER为支持仿真ARM内核芯片推出的JTAG 仿真器。
不管什么CPU的仿真器,都需要安装其相应的驱动后才能使用。
J-Link也不例外,它的驱动软件可以去官方网站:下载最新版本。
这里使用的驱动软件版本是V4.08l,该驱动的安装非常简单,请参考文档《如何安装J-Link驱动软件》。
安装完毕,会出现如下两个图标:现在开始我们的工作吧!步骤一先进行设备连接操作。
芯达STM开发板的JTAG口(开发板面朝上,最顶端有一个JTAG20pin的插口),与J-Link V8仿真器的输出排线连接,J-Link另一头的USB插口则插在电脑的USB口上。
这时,J-Link的指示灯开始闪烁,并保持“点亮”的状态。
注意:大家购买J-Link仿真器的时候,JTAG接口要求是标准的20pin的2.54间距的针座。
否则需要转接卡进行JTAG接口的转换。
步骤二进入PC的桌面,点击上图左边的图标:J-Flash ARM V4.081,出现如下界面:步骤三我们先来进行project设置,保存后会自动识别该配置。
不进行project设置,则在后续步骤进行连接connect开发板的时候,会提示找不到flash 设备下载,导致无法连接,如下所示:点击“Options”,再点击“Project settings”,如下图所示:步骤四在弹出的窗口中进行设置。
Jlink在MDK下使用J-link_J-trace模式开发STM32的说明
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在ADS下的配置说明及常见问题解决办法
【原创】Jlink在ADS下的配置说明及常见问题解决办法Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj参考⽂档:*1、TQ2440开发板使⽤⼿册V3.2_20121203.pdf2、JLINK ADS 2440.pdf注:1、本说明是针对S3C2440⽽写的。
其他的配置基本⼀样,就是型号要改。
我会在⽂章中说明,反正出现的问题都差不多。
2、针对裸板开发及笔记本的J-Link与开发板的连接及配置的⼀些问题进⾏总结跟解决。
裸机下开发软件⽤的是ARM Developer Suitev1.2(ADS)。
3、重点在于JLink 的配置问题上,把我遇到的问题说明,欢迎补充!最近搞了好⼏天的J-Link调试,找开发板的技术也没解决。
在⽹上找了好多⼈家的经验。
把⾃⼰⼀步⼀步的问题都解决了。
其实还是卡在了最后⼀步上,⽹上也搜不到这样的问题,估计也是偶然性的问题,最后算是凭着运⽓搞定了吧。
⽆⽐欣喜。
我想对S3C2440⽤ADS开发及J-Link调试下的⼀些注意点做⼀下总结,也希望对看到的⼈有所帮助。
欢迎分享!⼀、编译源代码、⽣成bin软件:ADS1.2 很简单,没什么要注意的。
最后破解⼀下就可以。
装完后在开始菜单下有⼀个ARM Developer Suite v1.2⽬录,打开,我们⽤的是⾥⾯的第⼀AXD Debugger(AXD)跟第⼆个CodeWarrior for ARM Developer Suite(IDE),IDE就是源代码编译⽣成bin的。
1、 IDE相关配置a、新建⼯程,选可执⾏镜像。
再新建或直接添加代码。
代码的管理也很简单。
*b、建好的⼯程下有⼀个***.mcp(mcp是⼯程名,以后直接打开它即可,也可以直接拖拽)的窗⼝,点击DebugRel Setting(我们这⾥默认的是DebugRel,⽣成的bin⽂件也在那⾥⾯)在弹出的设置对话框⾥做如下设置:1、 Target->Target Setting要改Post-Linker(ARM fromELF)2、Language Setting ⾥都改成ARM920T,其他型号的内核也做相应的改动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[分享]JLINK在ADS下调试心得
上一篇/ 下一篇2008-05-09 00:15:50
查看( 984 ) / 评论( 5 ) 前两天一个客户用jlink在ADS来调试LPC2148总报错,这个错误我之前在调试LPC2200的时候也碰到过,后来在醇酒兄的指导下问题解决了,在这谢谢醇酒兄。
发贴和大家分享一下。
1、在AXD下添加JLINK
选择Options下面的Config Target,如下图所示:
JLINK_ADS_1.jpg
单击Add按钮,添加jlinkRDI.dll(确保你已经安装了segger公司提供的驱动程序,本说明安装的为3.80a),如下图所示:
JLINK_ADS_2.jpg
添加完成后,如下图所示:
JLINK_ADS_3.jpg
2、配置JLINK
接上面,添加完成后,点击Configure,出现JLINK设置对话框,我们这里主要是选择我们要调试的处理器,如下图所示:
JLINK_ADS_4.jpg
选择完成后,点击确定完成设置。
如果JLINK已经和开发板连接好,并上电后,log信息里面会出现JLINK连接处理器的信息,如下图所示:
JLINK_ADS_5.jpg
3、调试
添加JLINK并配置完成后,即可开始调试。
开始调试后,一旦我们单步或者设置断点调试,我们会碰到这样的问题,如下图所示:
JLINK_ADS_6.jpg
结果无法调试,要解决这个问题,我们需要修改下ADS的设置,选择Options下面的Configure Processor,如下图所示:
JLINK_ADS_7.jpg
出现如下所示对话框:
JLINK_ADS_8.jpg
将Semihosting前面的勾去掉即可解决问题,如下图所示:
JLINK_ADS_9.jpg
点击OK,退出AXD,重新Debug,这次就可以任意单步或者设置断点了
JLINK_ADS_12.jpg。