加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

LPC2104从JTAG调试FLASH中程序的方法

时间:2013-11-23  来源:123485.com  作者:9stone

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)。
到现在还没有发现问题的症结在那里。
也请大家提出宝贵的方法


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门