综合资讯 技术文章 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

电子技术 | 技术资料 | 嵌入式系统 | 单片机专题 | DSP专题
EDA/PLD专题 | 电源技术专题 | 电子制作专题 | 其他综合 | 芯片选型

所在的位置:首页在线阅读嵌入式系统ARM技术专辑正文
 
LPC2104中从JTAG接口方式调试FLASH中的程序方法

1,下载程序。
在IDE环境中选择Release,设置RO BASE=0X00000000,RW BASE=0X40000040(0x40000000不能实现REMAP功能),Image Entry Point=0x00000000,object/simple为vectors.o,section为startup。
2,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,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)。
到现在还没有发现问题的症结在那里。
也请大家提出宝贵的方法

返回 上一页 下一页   信息发布:工号01   转引自: 【 】 【打印】 【关闭

关于我们 ┋ 友情链接


深圳市福田区海滨广场福业大厦12C
电话:0755-88305880 25960580 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号