LPC2104从JTAG调试FLASH中程序的方法
2012-12-04
标签:

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)LDRPC, ResetAddr

第二步:(F10)BLInitStack;初始化堆栈

(F8)进入InitStack函数//可以选择进入InitStack看程序运行或F10进行下一步

第三步:(F10)BLTargetResetInit;目标板基本初始化

(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)。

到现在还没有发现问题的症结在那里。

也请大家提出宝贵的方法

可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号