使用H-Jtag或Jlinkv7单步调试
- 格式:pdf
- 大小:301.55 KB
- 文档页数:6
图解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等介绍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用户使用手册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的基本使用和配置,手册同时也提供了一些简单的例子供用户参考。
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的操作。
广州周立功单片机发展有限公司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 的配置根据调试目标的不同分为两种情况:在片内存储器中调试时需用户 手动配置;在片外存储器中调试时需加载配置文件。
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调试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 完结。
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烧写一样,具体对应的套餐烧写对应的块数。
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 个口就可以了)。
使用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 中的方法即可进行单步调试。