使用H-Jtag或Jlinkv7单步调试

合集下载

Keil MDK 3.5 Jlink V7 在STM32中SRAM 调试成功方法成功

Keil MDK 3.5 Jlink V7 在STM32中SRAM 调试成功方法成功

图解Keil MDK 3.5/UV4beta Jlink V7 在STM32中SRAM 调试成功方法成功目的是避免FLASH擦写次数的限制,和避免新手学习很快让MCU结束生命。

以本人STM32F103RBT6为例,128K flash,20K SRAM,借鉴前人ULINK下调试的方法。

把内存分为16K用做FLASH,4K用做内存使用,这里以GPIO点亮LED为例子,项目为GPIO_OUT。

1、copy Keil安装目录下,例如C:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky中的RAM.ini到项目目录,然后双击GPIO_OUT.uvproj,启动Keil。

2、单击启动下图对话框,在Project Targets一项单击New(Insert)按钮,增加一个目标,命名为SRAM,然后OK。

3、然后再Select Target中选择SRAM。

4、左侧项目栏中选择SRAM,单击右键选择Options for Target “SRAM”,打开选项对话框。

5、如上图所示,在target选项中修改IROM1的Start值为:0x20000000,Size:0x4000IRAM1的Start值为:0x20004000,Size:0x1000;即内存分为16K用做FLASH,4K用做内存使用。

6、OutPut选项卡中也选中Create HEX File,如下图所示。

7、在Debug选项中仿真器选择Cortex-M3 J-LINK,Initialization File中点击Edit按钮选择刚才copy过来的RAM.ini文件,取消Load Application at Startup复选框,设置如下:并点击仿真器一栏,Settings按钮,进一步设置,如下图,注意Debug选项中Interface中选择USB,如下图所示,在Flash Download中配置,选中Do not Erase,在RAM for Algorithm中Start设置为0x20004000,Size设置为0x1000,设置STM32F10x Med-density Flash的地址Start:0x20000000,size:0x00004000,点击OK。

JTAG-SWD-JLink等介绍

JTAG-SWD-JLink等介绍

JTAG-SWD-JLink等介绍stm32 JTAG和SWD的使用区别搞嵌入式开发和ARM开发搞了半辈子了,调试程序是不可避免的。

接触了那么多的调试规范、调试工具、调试手段,彼此之间的关系却也不是特别清楚,今天就来捋一捋:JTAG协议JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(I EEE 1149.1兼容),主要用于芯片内部测试。

现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。

标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

相关JTAG引脚的定义为:TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TCK:测试时钟输入;TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;TDO:测试数据输出,数据通过TDO引脚从JTAG接口输出;JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。

而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。

所以,目前市场上已经很少看到它的身影了。

SWD接口串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。

SWD和传统的调试方式区别:SWD模式比JTAG在高速模式下面更加可靠。

在大数据量的情况下面JTAG 下载程序会失败,但是SWD发生的几率会小很多。

基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。

在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。

H-JTAG调试手册

H-JTAG调试手册

H-JTAG用户使用手册H-JTAG用户使用手册Copyright © 2009 All Rights Reserved修改记录日期版本改动2007-10-01 A 发布第一版本2007-11-30 B 修改版本2008-03-03 C 更正了TAP的设置说明2009-01-08 D 软件更新版权声明1. 文档中出现的JTAG表述,为IEEE-1149标准,其所有权属于国际电子电气协会;2. 文档中出现的所有ARM标识和表述,均为ARM公司的注册商标,其所有权属于ARM公司;3. 文档中提及的任何第三方的注册商标和产品标识,均属于第三方公司所有;4. 如果文档当中有任何地方侵犯了您的权利和版权,请和我们联系,我们将及时修改;5. 本文档为开放文档,用户可以在保证文档完整性的前提下,自由分发;官方主页技术支持论坛目录前言A. 关于本手册 (IV)B. 适合的读者 (IV)C. 意见反馈 (IV)第一章H-JTAG介绍1.1 H-JTAG介绍………………………………………………………………………………..1-11.2 H-JTAG调试/烧写结构…………………………………………………………………….1-1第二章H-JTAG的安装和GUIH-JTAG的安装……………………………………………………………………………..2-1 2.12.2 H-JTAG的卸载……………………………………………………………………………..2-32.3 H-JTAG的GUI……………………………………………………………………………..2-32.4 H-FLASHER的GUI……………………………………………………………………….2-7 第三章H-JTAG USB仿真器3.1 USB仿真器硬件接口…………………...…………………………………………………..3-13.2 安装USB仿真器驱动程序………………………………………………………………….3-2 第四章H-JTAG的使用和配置详解4.1 检测调试目标………………………………………………………………………………..4-14.2 复位调试目标………………………………………………………………………………..4-14.3 FLASH自动下载……………………………………………………………………………4-14.4 设置初始化脚本……………………………………………………………………………..4-2USB/LPT接口选择 ............………………………………………………………………...4-3 4.54.6 设置JTAG…………………………………………………………………………………...4-34.7 设置并口……………………………………………………………………………………..4-64.8 设置调试目标………………………………………………………………………………..4-64.9 添加芯片ID………………………………………………………………………………….4-64.10 TAP设置………………………………………………………………………………….….4-7H-JTAG常用选项…………………………………………………………………………..4-8 4.114.12 检查软件更新………………………………………………………………………………..4-9 第五章H-FLASHER的使用和配置详解H-FLASHER工作流程........……………………………………………………………….5-1 5.1H-FLASHER编程向导…………………………………………………………………….5-2 5.25.3 常见提示…………………………………………………………………………………….5-55.4 烧写实例1-AT91SAM7X256………………………………………………………….....5-65.5 烧写实例2-LPC2210 + SST39VF1601……………………………………………….5-10第六章初始化脚本6.1 初始化脚本的定义………………………………………………………………………….6-16.2 初始化脚本的编辑………………………………………………………………………….6-3第七章调试软件的配置7.1 AXD的配置………………………………………………………………………………....7-17.2 RVDS的配置……………………………………………………………………………….7-47.3 IAR的配置………………………………………………………………………………….7-87.4 KEIL的配置……………………………………………………………………………….7-12前言A. 关于本手册H-JTAG用户使用手册简单介绍了H-JTAG和H-FLASHER的基本使用和配置,手册同时也提供了一些简单的例子供用户参考。

J-link V7烧写flash

J-link V7烧写flash

1. 简要说明JLink的调试功能、烧写Flash的功能都很强大,但是对于S3C2410、S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。

本文使用一个间接的方法来实现对S3C2410、S3C2440开发板的Nor、Nand Flas h的烧写。

原理为:JLink可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写。

2. 操作步骤2.1 连接硬件对于大多数的S3C2410、S3C2440开发板而言,它们所用的JTAG接口一般有3种(如图1所示),其中前两种用得比较多。

(原文件名:3种jtag.JPG)引用图片但是市面上的JLink,大多只支持第3种JTAG接口,所以需要用到转接板。

或者直接使用JLink的变种,如图2所示的两种改进版JLink:(原文件名:2种jlink.JPG)引用图片以mini2440为例,如图3接好JTAG线。

(原文件名:JLink_2440.jpg)引用图片2.2 运行J-Link commanderJ-Link commander启动界面如图4所示,(如果没有发现检测到CPU,就在里面执行usb命令连接JLink,再执行r命令识别处理器)。

(原文件名:JLINK启动界面.JPG)引用图片2.3 下载运行特制的程序对于S3C2410、S3C2440处理器,它们内部有4K的SRAM,当使用Nor Flash启动时,地址为0x40000000;当使用Nand Flash启动时,地址为0。

对于S3C2410、S3C2440开发板,一般都外接64M的SDRAM。

SDRAM能被使用之前,需要经过初始化。

所以,先把一个init.bin下载到内部SRAM去运行,它执行SDRAM的初始化;然后再下载一个比较大的程序,比如u-boot到SDRAM去动行,它将实现对Nor、N and Flash的操作。

H-JTAG基本使用

H-JTAG基本使用

广州周立功单片机发展有限公司Tel: (020)3873097638730977Fax: 38730925第1章 H-JTAG 基本使用方法1.1 软件安装在 PC 上运行安装文件 H-JTAG.EXE,如图 1.1 所示。

根据安装提示完成安装即可。

图 1.1 H-JTAG 软件安装界面安装好的 H-JTAG 软件包含有 H-JTAG Server(下文简称为 H-JTAG)和 H-Flasher,在 桌面上有它们的快捷图标。

运行程序 H-JTAG 和 H-Flasher 后,用户任务栏中将出现图 1.2 所示图标。

图 1.2 H-JTAG 提示图标将计算机并口与 EasyJTAG-H 仿真器相连, 再将 EasyJTAG-H 仿真器的 JTAG 接口相连, 然后给开发板上电。

1.1.1 H-JTAG 配置 在使用 H-JTAG Server 调试 ARM7 前,需要进行以下几步设置。

1、单击任务栏的 H 提示图标,打开 H-JTAG 窗口,如图 1.3 所示。

单击“放大镜”图 标按钮后,能看见调试代理搜索到 ARM7 处理器。

1广州周立功单片机发展有限公司Tel: (020)3873097638730977Fax: 38730925图 1.3 H-JTAG 主窗口2、选择【Flasher】->【Auto Download】选择自动下载项,如图 1.4 所示。

注:在 Flash 中调试时必须选择“Auto Download” ,而在 RAM 中调试可以不选择。

图 1.4 打开自动下载功能3、 设置 JTAG 复位信号: “Settings” 选择 菜单栏中的 “LPT Jtag Setting” 在弹出的 , “LPC JTAG Setting”窗口中按照图 1.5 所示进行设置。

2广州周立功单片机发展有限公司Tel: (020)3873097638730977Fax: 38730925图 1.5 LPC JTAG Setting1.1.2 H-Flasher 配置 对 H-Flasher 的配置根据调试目标的不同分为两种情况:在片内存储器中调试时需用户 手动配置;在片外存储器中调试时需加载配置文件。

H-JTAG使用手册

H-JTAG使用手册

Keil环境下Wiggler和H-JTAG使用手册1.说明本使用手册适用于大浪淘沙的ARM开发板的LPC2148-- V1.0和V2.0。

硬件如下图。

本手册先介绍用H-Flasher下载程序的方法,然后介绍在KEIL环境下用H-JTAG进行仿真的方法和相关设置。

(虽然发现这个东东在KEIL下仿真效果不怎么样,但还是粗略介绍一下,如对仿真有较高要求,推荐用我们的USB接口的“LSM-ULINK”ARM 仿真器),本手册假设所有使用到的软件都安装在默认文件夹下。

2.先将KEIL和H-JTAG V0.4.3软件装在电脑默认文件夹下,装好H-JTAG V0.4.3后桌面会生成二个快捷方式(H-JTAG的作者是twentyone,最新的版本可在相应的网站上下载)3.将开发板配套的JTAG连线10P端连至开发板上的JTAG接口(见上图标示),另一端的DB25金属接头接至电脑并口。

将开发板的跳线:244-OE,JTAG-RST1,RSE-SEL连上,取下ISP跳线。

打开目标开发板电源。

4.先来看下用H-Flasher下载程序的方法。

4.1 启动4.2 启动4.4 点选Programming(见下图),将绿色标记的TYPE选为如图所示,点击紫色标记内的。

按键,选择要下载的目标HEX文件,参见下图。

4.5 点击下图绿色标记的Check,检测目标I C内核,按紫色标记的Program按键,下载程序到目标板。

下载完成后的画面如下图所示。

4.6 按目标板RESET,如不出意外,你将看到程序已经在目标板上成功运行了。

(用这个下载程序要比用串口下载程序快N倍)5.下面介绍一下在KEIL环境下用H-JA TG仿真的方法和相关设置。

5.1 紧接上述的每个步骤和各项设置,打开KEIL FOR ARM UV3先看下版本(因为发现某些版本对HJTAG支持不好)虽然你可能对它不陌生,但还是给个界面重温一下:图。

5.3点击工具栏的这个按键打开Options for Target ‘Target 1’窗口,见下图,将Xtal设为11.0592,取消绿色标记处的勾,如下图.(没标记处默认设置即可,下同)5.4 打开Debug选项卡,设置见下图.5.5点击上图绿色标记按键Settings,显示以下画面,点击下图绿色。

jlink使用方法笔记

jlink使用方法笔记

jlink使用方法笔记这段时间在用jlink调试freescale的mx51板子,下面将使用jlink的方法在此做一个笔记。

jlink是segger公司的产品,由于正版的工具巨贵,所以现在大部分人都喜欢用山寨版的jlink,幸运的是我的山寨版jlink支持arm cortex a8,所以能调试mx51板子。

jlink的官方提供调试软件和驱动,调试软件有jlink commander(j-tag调试)、j-mem(内存查看)、j-flash(flash烧写)等。

我主要用到的是jlink commander,以下是它的命令集:SEGGER J-Link Commander V4.20h ('?' for help)Compiled Oct 5 2010 19:11:57DLL version V4.20h, compiled Oct 5 2010 19:11:41Firmware: J-Link ARM V8 compiled Oct 5 2010 08:59:59Hardware: V8.00S/N: 20100214Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFullVTarget = 3.280VInfo: TotalIRLen= ?, IRPrint = 0x..FFFFFFFFFFFFFFFFFFFFFFF1WARNING: CPU core not found.No devices found on JTAG chain. Trying to find device on SWD.WARNING: CPU core not found.****** Error: Parity error (Data = 0xFFFFFFFF, ReceivedParity = 1)No device found on SWD.Did not find any core.Info: TotalIRLen = 9, IRPrint = 0x0011Found 2 JTAG devices, Total IRLen = 5:#0 Id: 0x2B900F0F, IRLen: 04, IRPrint: 0x0, ARM ETB#1 Id: 0x07B76F0F, IRLen: 05, IRPrint: 0x1, ARM1176 CoreARM11 identified.J-Link>Available commands are:----------------------f Firmware infoh haltg goSleep Waits the given time (in milliseconds). Syntax: Sleep <delay>s Single step the target chipst Show hardware statushwinfo Show hardware infomem Read memory. Syntax: mem <Addr>, <NumBytes> (hex)mem8 Read 8-bit items. Syntax: mem8 <Addr>, <NumBytes> (hex) mem16 Read 16-bit items. Syntax: mem16 <Addr>, <NumItems> (hex) mem32 Read 32-bit items. Syntax: mem32 <Addr>, <NumItems> (hex)w1 Write 8-bit items. Syntax: w1 <Addr>, <Data> (hex)w2 Write 16-bit items. Syntax: w2 <Addr>, <Data> (hex)w4 Write 32-bit items. Syntax: w4 <Addr>, <Data> (hex)wm Write test words. Syntax: wm<NumWords>is Identify length of scan chain select registerms Measure length of scan chain. Syntax: ms<Scan chain>mr Measure RTCK react time. Syntax: mrq Quitqc Close JLink connection and quitr Reset target (RESET)rx Reset target (RESET). Syntax: rx<DelayAfterReset> RSetType Set the current reset type. Syntax: RSetType<type>Regs Display contents of registerswreg Write register. Syntax: wreg<RegName>, <Value>SetBP Set breakpoint. Syntax: SetBP<addr> [A/T] [S/H]SetWP Set Watchpoint. Syntax: <Addr> [R/W] [<Data> [<D-Mask>] [A-Mask]] ClrBP Clear breakpoint. Syntax: ClrBP <BP_Handle>ClrWP Clear watchpoint. Syntax: ClrWP <WP_Handle>VCatch Write vector catch. Syntax: VCatch<Value>loadbin Load binary file into target memory.Syntax: loadbin<filename>, <addr>savebin Saves target memory into binary file.Syntax: savebin<filename>, <addr>, <NumBytes>SetPC Set the PC to specified value. Syntax: SetPC<Addr>le Change to little endian modebe Change to big endian modelog Enables log to file. Syntax: log <filename>unlock Unlocks a device. Syntax: unlock <DeviceName>Type unlock without <DeviceName> to get a listof supported device names.nRESET has to be connected---- CP15 ------------rce Read CP15. Syntax: rce<Op1>, <CRn>, <CRm>, <Op2>wce Write CP15. Syntax: wce<Op1>, <CRn>, <CRm>, <Op2>, <Data>---- ICE -------------Ice Show state of the embedded ice macrocell (ICE breaker)ri Read Ice reg. Syntax: ri<RegIndex>(hex)wi Write Ice reg. Syntax: wi<RegIndex>, <Data>(hex)---- ETM -------------etm Show ETM statusre Read ETM reg. Syntax: re <RegIndex>we Write ETM reg. Syntax: we <RegIndex>, <Data>(hex)es Start trace---- ETB -------------etb Show ETB statusrb Read ETB register. Syntax: rb<RegIndex>wb Write ETB register. Syntax: wb<RegIndex>, <Data>(hex)---- TRACE -----------TAddBranch TRACE - Add branch instruction to trace buffer. Paras:<Addr>,<BAddr> TAddInst TRACE - Add (non-branch) instruction to trace buffer. Syntax: <Addr> TClear TRACE - Clear bufferTSetSize TRACE - Set Size of trace bufferTSetFormat TRACE - SetFormatTSR TRACE - Show Regions (and analyze trace buffer)TStart TRACE - StartTStop TRACE - Stop---- SWO -------------SWOSpeed SWO - Show supported speedsSWOStart SWO - StartSWOStop SWO - StopSWOStat SWO - Display SWO statusSWORead SWO - Read and display SWO dataSWOShow SWO - Read and analyze SWO dataSWOFlush SWO - Flush data---- File I/O --------fwrite Write file to emulatorfread Read file from emulatorfshow Read and display file from emulatorfdelete Delete file on emulatorfsize Display size of file on emulator---- Test ------------thg Run go/halt 1000 timests Run step 1000 timestestwspeed Test download speed. Syntax: testwspeed [<Addr> [<Size>]] testrspeed Test upload speed. Syntax: testrspeed [<Addr> [<Size>] [<NumBlock s>]]testcspeed Test CPU speed. Syntax: testcspeed [<RAMAddr>]---- JTAG ------------Config Set number of IR/DR bits before ARM device.Syntax: Config<IRpre>, <DRpre>speed Set JTAG speed. Syntax: speed <freq>|auto|adaptive, e.g. speed 2000, speed ai Read JTAG Id (Host CPU)wjc Write JTAG command (IR). Syntax: wjc<Data>(hex)wjd Write JTAG data (DR). Syntax: wjd<Data32>(hex), <NumBits>(dec) RTAP Reset TAP Controller using state machine (111110)wjraw Write Raw JTAG data. Syntax: wjraw<NumBits(dec)>, <tms>, <tdi>rt Reset TAP Controller (nTRST)---- JTAG-Hardware ---c00 Create clock with TDI = TMS = 0c Clock0 Clear TDI1 Set TDIt0 Clear TMSt1 Set TMStrst0 Clear TRSTtrst1 Set TRSTr0 Clear RESETr1 Set RESET---- Connection ------usb Connect to J-Link via USB. Syntax: usb<port>, where port is 0..3ip Connect to J-Link ARM Pro or J-Link TCP/IP Server via TCP/IP.Syntax: ip<ip_addr>---- Configuration ---si Select target interface. Syntax: si<Interface>,where 0=JTAG and 1=SWD.power Switch power supply for target. Syntax: power <State> [perm], where State is either On or Off. Example: power on permwconf Write configuration byte. Syntax: wconf<offset>, <data>rconf Read configuration bytes. Syntax: rconfusbaddr Assign usb address to the connected J-Link: Syntax: usbaddr = <addr> ipaddr Show/Assign IP address and subnetmask of/to the connected J-Link. gwaddr Show/Assign network gateway address of/to the connected J-Link. dnsaddr Show/Assign network DNS server address of/to the connected J-Link. conf Show configuration of the connected J-Link.ecp Enable the J-Link control panel.calibrate Calibrate the target current measurement.----------------------NOTE: Specifying a filename in command linewill start J-Link Commander in script mode.总结一下我们使用的最多的命令:usb--------连接目标板r----------重启目标板halt-------停止cpu运行的程序loadbin----加载可执行的二进制文件g----------跳到代码段地址执行s----------单步执行(调试用)setpc-----设置pc寄存器的值(调试用)setbp-----设置断点Regs-------读寄存器组织wreg-------写寄存器mem--------读内存w4---------写内存power off mmu---关闭mmu,这个对于裸板调试很重要w4 cpsr,0x0000001f------切换到系统模式speed------设置jtag的传输速率rce 0,c0,c0,0-----设置cp15寄存器的第1个寄存器为0 完结。

HJATG软件烧写说明

HJATG软件烧写说明

1、首先安装H-JTAG V2.1RELEASE.exe或者更高版本的软件。

默认安装即可。

2、开发板的JTAG口连接好20PIN排线,WRIGGLE板连好PC机的并口。

3、给开发板上电,运行H-JATG软件,运行后如下图
4、选择菜单栏“Settings”-“USB/LPT Selection”-LPT并口
5、点击“OK”按钮之后,提示“Deteting target...”
6、点击这个图标,进入H-Flasher下载界面。

7、选择菜单栏“Load”,选择所需要的配置文件,文件名后缀.hfc
8、去掉Production里的勾,如下图;
9、进入“Programming”
10、如果要烧写UBOOT,直接在“Src File”里选择需要下载的文件就行了。

11、如果要烧写NBOO1ST.BIN,对于“Dst Addr:”选择Block-0000;如果要写NBOOT2ND.BIN,则选择Block-0002;YC-UMON.BIN和SJF烧写一样,具体对应的套餐烧写对应的块数。

JTAG调试原理

JTAG调试原理

2.6、EmbeddedICE的断点/观察点设置 EmbeddedICE有两个WtchPoint单元。 下面介绍一下WatchPoint寄存器的使用: EmbeddedICE的一个主要作用是可以在 ARM程序中设置软件或硬件断点。在 EmbeddedICE中,集成了一个比较器,负责 把ARM处理器取指的地址A[31:0],数据 D[31:0]以及一些控制信号与EmbeddedICE 中WatchPoint寄存器中设置的数值相比较 (具体说应该是进行与或运算),比较结果 用来确定输出一个ARM断点(BreakPoint)信号。 具体运算关系如下公式所描述:
DBGRQ:用来标识DBGRQ信号的当前状态 IFEN:用来标识系统的中断控制状态:启用
还是禁用 cgenL:用来判断当前对调试器在调试状态下 对内存的访问是否完成 TBIT:该位用来判断ARM7TDMI是从ARM 状态还是THUMB状态进入到调试状 态的
Abort Status Register 格式:
{Av[31:0],Cv[4:0]} XOR {A[31:0],C[4:0]} OR {Am[31:0],Cm[4:0]} == 0xFFFFFFFF 当上述表达式值为真时,断点/观察点信 号有效,ARM内核进入Debug模式。
ARM中断点和观察点的设置 首先介绍一下与之设置密切相关的WP Control Value/Mask Register。 WP Control Value/Mask Register格式:
WP Control Value/Mask Register格式含义: ENABLE: 如果该位置0的话,意味着断点 触发条件永远不成立,也就是把全部断点 都给disable掉了 RANGE: 暂时不会用 CHAIN: 暂时不会用 EXTERN: 外部到EmbeddedICE-RT的输 入,通过该输入,可以使得断点的触发依 赖于一定的外部条件 nTRANS: 用来判断是在用户态下还是非用 户态下,用户态下:nTRANS = 0,否则 nTRANS = 1

ARM仿真器JLINK、ULINK使用SWD调试时的接线方式

ARM仿真器JLINK、ULINK使用SWD调试时的接线方式

ARM仿真器JLINK、ULINK使用SWD调试时的接线
方式
手头的仿真器是JLINK V8,连接STM32F103 时,使用SWD 方式。

JTAG 引脚示意图:
一、SWD 和传统的调试方式区别
1. SWD 模式比JTAG 在高速模式下面更加可靠
2. GPIO 刚好缺一个的时候, 可以使用SWD 仿真, 这种模式支持更少的引脚
3. 在板子的体积有限的时候推荐使用SWD 模式
二、仿真器对SWD 模式支持情况
1. 市面上的常用仿真器对SWD 模式支持情况
JLINKV8 非常好的支持SWD 仿真模式, 速度可以到10M
ULINK2 非常好的支持SWD 模式,速度可以达到10M
2. SWD 硬件接口上的不同
(1) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK(2) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8 的实际连线及相应实验结果)(3) ULINK1 不支持SWD 模式(4) ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
三、在MDK 中SWD 模式的设置
正常的JTAG 需要20 管脚,而J-Link 的SWD 只需要2 根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4 根),这样就节省了3 个I/O 口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4 个口就可以了)。

J-Link V7用户指南 V1.0

J-Link V7用户指南  V1.0

J-Link用户指南1.0Rev1.0版本:Rev20099-1-100-1200目录一、J-Link ARM JTAG仿真器简介。

二、J-Link驱动安装。

三、J-Link(Jlink)在各个主流开发环境下的设置。

四、J-Flash ARM使用设置。

五、F.A.Q。

附录一:使用Jlink的GDBserver。

附录二:J-Flash ARM命令行使用说明。

一、J-Link ARM JTAG仿真器简介J-Link是支持仿真ARM内核芯片的JTAG仿真器。

配合IAR EWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。

DQ电子推出的J-Link V7仿真器采用原版固件,参照原版原理图,经过DQ团队的长时间精工制做,板型合理,元件布局美观大方,走线严谨精致,并且每一个产品都经过功能和老化测试,功能完全与原版一致,支持在线升级。

J-Link ARM主要特点:■IAR EWARM集成开发环境无缝连接的JTAG仿真器。

■支持所有ARM7/ARM9内核的芯片,以及cortex M3,包括Thumb模式。

■支持ADS,IAR,KEIL,WINARM,REALVIEW等几乎所有的开发环境。

■下载速度高达ARM7:600kB/s,ARM9:550kB/s,通过DCC最高可达800kB/s*最高JTAG速度12MHz。

■目标板电压范围1.2V-3.3V。

■自动速度识别功能。

■监测所有JTAG信号和目标板电压。

■完全即插即用。

■使用USB电源(可接通J12跳线给目标板供电,出厂时未接通)。

■带USB连接线和20芯JTAG连接排线。

■支持多JTAG器件串行连接。

■标准20芯JTAG仿真插头。

■带J-Link TCP/IP server,允许通过TCP/IP网络使用J-Link支持的内核:■ARM7TDMI(Rev1)■ARM7TDMI(Rev3)■ARM7TDMI-S(Rev4)■ARM720T■CORTEX M3■ARM920T■ARM926EJ-S■ARM946E-S■ARM966E-S二、J-LINK驱动安装安装附带光盘中JLINK_drivers目录下的Setup_JLinkARM_V408i.zip中的驱动文件。

JLINK使用教程详解,以及与JTAG区别

JLINK使用教程详解,以及与JTAG区别

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测试⼯具对内部节点进⾏测试和调试。

jtag标准调试流程

jtag标准调试流程

jtag标准调试流程
JTAG调试是一种基于硬件的调试方法,主要用于嵌入式系统中的调试和测试。

以下是JTAG标准调试流程:
硬件连接:将调试器和目标板通过JTAG接口进行连接,确保连接稳定可靠。

电源供电:给调试器和目标板提供稳定的电源,确保系统正常运行。

配置调试器:根据目标板的芯片型号和调试器类型,进行相应的配置。

启动调试器:在调试器中选择合适的调试模式,如仿真模式、跟踪模式等。

加载程序:通过调试器将待调试的程序加载到目标板的芯片中。

单步调试:在调试过程中,逐条执行程序中的指令,观察寄存器和内存的值,检查程序的运行状态。

跟踪调试:在调试过程中,跟踪程序的执行流程,观察程序中各个变量的值,检查程序的逻辑错误和性能问题。

断点和异常处理:在调试过程中,可以设置断点来暂停程序的执行,检查程序中的异常情况并进行处理。

结束调试:当调试完成后,断开调试器和目标板的连接,关闭电源。

需要注意的是,JTAG调试需要对硬件和软件都有一定的了解,需要熟悉目标板的芯片型号、电路原理和程序代码。

同时,调试过程中需要耐心和细心,逐一排查问题并解决问题。

以上是JTAG标准调试流程的简要介绍,具体的调试方法和步骤可能因不同的工具和场景而有所不同。

jlink的使用方法

jlink的使用方法

jlink的使用方法JLink是Segger公司开发的一款用于嵌入式系统的调试和仿真工具。

它是一种硬件和软件的解决方案,可用于调试和烧录各类微控制器,如ARM和Cortex-M系列。

在本文中,我将详细介绍JLink的使用方法,并提供一些常见问题的解决方案。

一、JLink的配置要使用JLink进行调试和仿真,首先需要进行一些基本的配置。

以下是配置JLink所需的步骤:1.安装JLink软件和驱动程序:在Segger官方网站上下载JLink软件并进行安装。

安装完成后,选择适合您的操作系统的驱动程序进行安装。

2.连接JLink调试器:将JLink调试器连接到电脑的USB接口上。

在连接之前,确保JLink调试器已插入目标设备上的JTAG或SWD接口。

3.配置调试选项:打开JLink软件,并选择目标设备的型号和调试接口类型。

您可以在菜单栏上的“文件”选项中找到这些选项。

4.配置调试连接:选择正确的调试连接选项,如JTAG或SWD。

您还可以选择连接速度和其他调试选项。

5.配置目标设备:选择目标设备的工作电压、频率等参数。

这些参数应与目标设备的规格书相匹配。

通过上述步骤配置JLink之后,您就可以开始使用JLink进行调试和仿真。

二、JLink的调试功能JLink具有强大的调试功能,可以帮助开发人员诊断和解决嵌入式系统中的问题。

以下是一些常见的JLink调试功能:1.断点调试:使用JLink可以设置断点,在程序执行到特定的代码行时暂停执行,以便开发人员检查程序状态和变量值。

2.单步调试:JLink支持单步调试功能,可以逐条执行程序,并在每个代码行上暂停执行,以便开发人员检查程序的执行流程。

3.变量监视:JLink可以监视变量的值,以便开发人员可以实时查看变量的值,并在程序运行时进行调试。

4.内存查看:JLink可以查看目标设备的内存内容,包括程序代码、数据和堆栈信息等。

这对于分析内存泄漏和其他相关问题非常有帮助。

jtag标准调试流程

jtag标准调试流程

jtag标准调试流程JTAG(Joint Test Action Group)是一种用于测试和调试集成电路的标准接口。

下面是JTAG标准调试流程的详细步骤:1. 硬件连接:将JTAG调试器与目标设备连接起来。

通常使用JTAG调试器的JTAG接口连接到目标设备的JTAG接口上,确保连接正确无误。

2. 软件设置:打开调试软件,并选择正确的目标设备和调试器。

根据实际情况,可能需要设置一些调试选项,如时钟频率、通信速率等。

3. 初始化:调试软件会发送一些初始化命令到目标设备,以确保设备处于正确的状态。

这些命令可能包括复位设备、加载调试固件等。

4. 读取设备信息:调试软件会读取目标设备的一些基本信息,如设备ID、版本号等。

这些信息可以用于确认目标设备是否正确连接,并且与调试软件兼容。

5. 设置断点:调试软件可以设置断点,以便在程序执行到指定位置时暂停执行。

断点可以设置在特定的代码行、函数调用或内存地址上。

6. 单步执行:调试软件可以逐步执行程序,以便检查每一步的执行情况。

可以使用单步执行命令,逐条执行指令,或者逐个时钟周期执行。

7. 查看寄存器状态:调试软件可以读取和修改目标设备的寄存器状态。

这些寄存器包括通用寄存器、特殊功能寄存器等,用于存储和控制设备的状态信息。

8. 查看内存内容:调试软件可以读取和修改目标设备的内存内容。

可以查看程序代码、数据等存储在内存中的信息,以便分析和调试程序。

9. 跟踪程序执行:调试软件可以跟踪程序的执行流程,记录程序运行时的各个环节。

可以查看函数调用栈、程序计数器值等,以便分析程序的执行路径。

10. 分析错误:如果程序发生错误或异常,调试软件可以捕获并显示错误信息。

可以查看错误代码、错误位置等,以便定位和修复问题。

11. 退出调试模式:调试完成后,可以选择退出调试模式。

调试软件会发送相应的命令到目标设备,使其恢复正常工作状态。

以上是JTAG标准调试流程的一般步骤,具体的流程可能会根据不同的调试工具和目标设备而有所差异。

H-JTAG使用教程

H-JTAG使用教程

图2

ARMDIY 嵌入式开发网
三 使用 H-Flasher 下载程序.
图3 如图 3 打开 H-Flasher 软件,如图 4.
图4 图中 FLASH 类型根据开发板的芯片来进行选择,此例以 LPC2132 为例.

ARMDIY 嵌入式开发网
ARMDIY 嵌入式开发网
H-JTAG 调试代理软件安装使用教程
一 安装光盘中提供的 H-JTAG V0.7.0.EXE 版本,如图 1 所示.
图1 二 安装成功后打开 H-JTAG 软件,如果此时连接开发板将自动检测开发板处理 器内核.如图 2 所示.此时 H-JTAG 软件已经可以配合 ADS 或者 MDK 进行调 试.
图5 如图 5,晶振选择 12M.
图好后点击图 6 中的 Check 按钮,检测到 FLASH 的 ID 后就可以对芯片内部 的 FLASH 进行烧写,擦除,查空等操作.


H-JTAG 使用说明

H-JTAG 使用说明

H-JTAG 使用说明版本:Rev 1.0 更新日期:2006.10.28H-JTAG twentyone/Team MCUzone更新记录Rev 1.0:文档创建2006-10-28目录第1章介绍1.1 H-JTAG介绍1.2 H-JTAG安装第2章调试2.1 在ADS1.2中使用H-JTAG调试2.2 在Realview2.2中使用H-JTAG调试2.3 在Keil中使用H-JTAG调试2.4 在IAR中使用H-JTAG调试第3章编程3.1 AT91SAM7S643.2 S3C44B0公版3.3 LPC2132测试板附录A Wiggler电路图附录B SDT JTAG电路图第1章介绍当前ARM的学习与开发非常流行,由于ARM的软件开发相对以前单片机而言更加复杂,硬件上的考虑也比较多,因此选择一个好的调试方法将可以使得开发的除错过程变得更加直接和简单。

现在市面上有很多可用于ARM调试的仿真器出售,然而其价格往往都比较贵。

这些仿真器一般都有其专用的软件和硬件,在速度和flash编程等方面有各自的优势。

然而对初学者而言,这些仿真器的成本都太高。

而简易仿真器的出现,使得大家可以使用甚至自制ARM 仿真器硬件。

有了调试器的硬件,还要加上调试代理软件,作为中介,将调试器前端软件(比如AXD)的调试信息与目标板上的目标芯片交互,才能最终完成仿真的任务。

目前,可以免费使用的简易ARM仿真器的代理软件很多,差别也比较大,主要表现在易用程度,目标器件支持,调试速度等方面。

H-JTAG作为近来新推出的简易ARM仿真器调试代理,其支持器件比较多,支持的调试器前端软件也比较多,特别是支持keil,其调试速度也很有优势。

1.1H-JTAG介绍H-JTAG是由twentyone推出的一款免费调试代理软件。

官方主页为:/目前的版本为0.4.2(2006年12月05日),支持下列特性:1. 支持RDI 1.5.0 与1.5.1;2. 支持ARM7 与ARM9(包括ARM9E-S 与ARM9EJ-S);3. 支持thumb 与arm 指令集;4. 支持little-endian 与big-endian;5. 支持semihosting;6. 支持wiggler, sdt-jtag 以及用户自定义的简易调试器硬件接口;7. 支持WINDOWS 9.X/NT/2000/XP;8. 支持flash器件的编程1.2H-JTAG安装根据上面给出的链接,通过download页面下载H-JTAG压缩文件包,展开即可获得H-JTAG的安装文件,如下图:双击右侧安装程序即可开始安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用H-Jtag 的单步调试实验
启动H-Jtag,正确读取CPU 的ID 号。

(这里默认您已经会使用H-Jtag,并且Jtag 板已经连接了开发板和PC、串口线也连接了开发板和PC)
说明:除去Jtag 接口、串口和LCD 接上设备外,不要接诸如USB 下载线等,因为单步调试时涉及中
断的调试会出现在中断响应的地方死循环的情况。

点击“”进入AXD 的调试页面,如下图所示:
然后点击“Options->Configure Target”进行配置,操作如下所示:
说明:这里直接将Jlink V7 的也选上了,下一节就不再进行说明。

配置过程,截图如下:
然后关闭AXD(其实也不用关闭AXD,直接点击“Files->Load Debug Symbols”选项,然后选择
TQ2440_Test.axf 文件,此时不推荐这样做),然后重新在ADS 1.2 中打开AXD,下面是加载完毕镜像后的
然后此时就可以单步调试了,下面列出常用的几个按钮以及功能(功能介绍依次从左到右介绍):
全速运行按钮:点击它就全速运行
暂停按钮:点击它可以暂停全速运行
调试按钮:实现单步调试,跳过函数调试等功能(中间4 个按钮)
显示执行点按钮:显示执行位置
断点按钮:设置断点
注意:单步调试时,对于中断等调试是没法进行的(比如接了USB 下载线),否则会出现在2440init.s
文件的415 行“ msr cpsr_cxsf,r1 ;SVCMode”处死循环,因为进入了中断响应子程序。

说明1:对于想要调试nand.c 文件的代码时,需要修改2440init.s 文件的314 和315 行,将其屏蔽(也就是前面加“;”号),并且要求从Nand Flash 启动才行,要Nand Flash 中的数据和您要调试的数据相同才行,否则是没法实现的。

说明2:对于调试时修改了代码,想要重新调试的解决方法为:在ADS 1.2 中编译(注意:是编译)镜像,然后再在AXD 中“Files->Reload Current Image”重新加载镜像即可。

说明3:对于已经设置过了AXD,然后第一次调试时打开AXD 出现错误的解决办法:首先重新配置AXD,然后点击“Files->Load Debug Symbols”,打开“TQ2440_Test.axf”文件,就可以加载镜像进行单步调
试了。

这里仅仅抛砖引玉的初步介绍单步调试的方法,可能您在实际使用中还会遇到问题,请到天嵌科技的
论坛发帖子询问。

使用Jlink V7 的单步调试实验
在5.3.2 中已经添加了Jlink 的dll 文件,然后配置Jlink,首先打开“Options->Configure Target”,然后选择“Multe-ICE”,点击Configure 后,在出现的Jlink 配置单中使用默认配置即可;然后打开“Options->Configure Interface”,然后在出现的对话框中选择session file 页面,然后导入光盘的“Windows 平台开发工具包\Jlink 资源\init_sdram.txt”文件,操作如下图所示:
配置完毕后,按照5.3.2 中的方法即可进行单步调试。

相关文档
最新文档