1、下载程序。 在IDE环境中选择Release,设置RO BASE=0X00000000,RW BASE= 0X40000040(0x40000000不能实现REMAP功能),Image Entry Point=0x00000000, object/simple为vectors.o,section为startup。 2、从JTAG管脚设置。 要实现从JTAG的调试,在进入用户程序前必须设置从JTAG方式。可以在启动程序中设置PINSEL1=0X55400000,也可以在进入MAIN函数后首先执行PINSEL1=0X55400000。在这里我们设计在启动代码中设置从JTAG口。 如下Target.c中在函数TargetResetInit(void)中设置如下。 void TargetResetInit(void) { /*REMAP操作*/ MEMMAP=0X01; //设置从JTAG的管脚配置值 PINSEL0=0X00005505; PINSEL1=0X55400000; //配置从JTAG …………………. } 这些程序编译后下载到LPC210X的FLASH中。 3、从JTAG接口调试FLASH中的程序 在IDE 环境中编译后按F5进入AXD 调试程序。在AXD调试程序中设置目标过程如下。OPTIONS->CONFIGURE TARGET,选择 EasyJTAG ,再点击Configure按钮。设置为Tap2,Halt and reset,和Erase Flash when need。 设置完成后,LOAD release里面的*.axf映像文件。成功LOAD的结果是出来vectors.s,程序从Vectors汇编程序出开始执行。 在实验板上,跳线的设置如下。JP1 ISP功能跳线拔去,JP6,JP7同样也是拔去,作为从JTAG接口选择。 在vectors.s中程序单步运行(按F10程序单步运行),执行如下: 第一步:(F10) LDR PC, ResetAddr 第二步:(F10) BL InitStack ;初始化堆栈 (F8)进入InitStack函数 //可以选择进入InitStack看程序运行或F10进行下一步 第三步:(F10) BL TargetResetInit ;目标板基本初始化 (F8) 进入TargetResetInit函数 //可以选择进入TargetResetInit看程序运行或F10进行下一步。在 TargetResetInit函数中我们设置从JTAG的功能配置,PINSEL1=0X55400000,使得可以使用从JTAG方式调试下载到 FLASH中的程序。 第四步:(F5) B __main 按F5进入用户程序MAIN函数。按F10进入MAIN 函数的汇编代码。 到此处,基本上可以调出来了.但!!!!!!!!!! 进入从JTAG调试FLASH中的程序的一般性步骤。同时在Load 映像文件时会出现几种错误,使得程序不能正常的加载。 1,Load进度条一直在运行,尝试着加载*.axf文件。 2,Load成功但出现中断出错(interrupt vectors error)。 到现在还没有发现问题的症结在那里。 也请大家提出宝贵的方法
|