打印
[ZLG-ARM]

周立功SmartARM2200模板无法进行调试--------------求助

[复制链接]
2822|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swordlife|  楼主 | 2008-10-18 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前学习uCOS,从别出弄了一个周公的SmartARM2200的开发板来。从周公的网站上下载了一个LPC2200的ADS模板,【ARM 
Executable Image for UCOSII(for lpc2200)】 就用他这个模板程序,自己没有增加任何的代码程序。
在ADS里面设置了ucos源文件等的路径,编译通过,(0错误)
1.安装了H-JTAG软件,使用H-JTAG能够检测到ARM芯片,显示ARM7TDMI-S 0x4F1F0F0F。
2.调用AXD通过JTAG端口调试uCOS,发现运行 Startup.s文件的程序时候出错,程序如下:
.........
;中断向量表
Reset
        LDR     PC, ResetAddr
        LDR     PC, UndefinedAddr
        LDR     PC, SWI_Addr
        LDR     PC, PrefetchAddr
        LDR     PC, DataAbortAddr  ;(运行到这一句就AXD就回弹出一个出错对话框)
        DCD     0xb9205f80
        LDR     PC, [PC, #-0xff0]
        LDR     PC, FIQ_Addr
.........
中的  LDR     PC, DataAbortAddr会弹出一个错误信息,见图片1


请教其他人,说是地址没有设置对。我所用的分散加载文件为mem_b ,ADS相关设置如下图

运行到main.c文件中,遇到了调用其他函数的语句,就直接跳过,根本不执行调用函数。

请教各位是什么问题?

相关帖子

沙发
swordlife|  楼主 | 2008-10-18 15:45 | 只看该作者

补充说明

我将J10设置了为从Bank0-RAM启动。Ban1-Flash。

使用特权

评论回复
板凳
zlg_lly| | 2008-10-21 18:50 | 只看该作者

re:swordlife

您好!
应该是您的ADS设置错了,ARM Executable Image for UCOSII(for lpc2200)这个模板内已经将分散加载文件等都设置好了,无需要用户自己设置。从您的贴的图来看,您选择在片外调试,但您选择了在片内调试的分散加载文件。

使用特权

评论回复
地板
swordlife|  楼主 | 2008-10-30 15:39 | 只看该作者

还是不行

感谢ZLG_LLY的回答。我用的是模板内的分散加载文件,没修改过。(出差了一个多星期,现在回来继续整这个问题)

我调试时候,出现的错误提示是“数据终止”的提示。图片如下:
查阅了说明说,mem_b的分散加载文件是片外RAM调试时候的加载文件。所以mem_b应该没哟加载错误。
1.mem_b.scf文件内容如下:
;/****************************************Copyright (c)**************************************************
;**                               Guangzou ZLG-MCU Development Co.,LTD.
;**                                      graduate school
;**                                 http://www.zlgmcu.com
;**
;**--------------File Info-------------------------------------------------------------------------------
;** File Name: men_b.scf
;** Last modified Date:  2004-09-17
;** Last Version: 1.0
;** Descriptions: Scatter File
;**
;**------------------------------------------------------------------------------------------------------
;** Created By: Chenmingji
;** Created date:   2004-09-17
;** Version: 1.0
;** Descriptions: First version
;**
;**------------------------------------------------------------------------------------------------------
;** Modified by:
;** Modified date:
;** Version:
;** Descriptions:
;**
;********************************************************************************************************/

ROM_LOAD 0x80000000
{
    ROM_EXEC 0x80000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }


    IRAM 0x40000000
    {
        Startup.o (MyStacks)
    }

    STACKS_BOTTOM +0 UNINIT
    {
        Startup.o (StackBottom)
    }

    STACKS 0x40004000 UNINIT
    {
        Startup.o (Stacks)
    }

    ERAM 0x80040000
    {
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }

    HEAP_BOTTOM 0x80080000 UNINIT
    {
        Startup.o (HeapTop)
    }

}


2.所使用的ARM芯片型号应该是LPC2210。开发板上的CPU PACK地方上的ARM芯片标有“Easy ARM2200”字样,所以应该是LPC2210。

3. AXD调试出错的提示是
DBT Warning 00135: Cannot set breakpoints in literal pools


请周公ARM团队帮忙解答这个问题?

使用特权

评论回复
5
swordlife|  楼主 | 2008-10-31 15:13 | 只看该作者

继续提问

问题问了这么就了,还是没有得到解答。
1.从网上搜寻了一些关于“取数据终止”的帖子看了下,都说是取数据地址到了合法地址范围之外。

2.我使用的周立功的 ARM EXecutable Image for lpc2200模板建立了一个项目,照着周立功配套教程上做第一个GPIO口的试验,自己没有修改任何程序。编译通过,0个错误。

3.进入AXD调试的时候,就会出现上面“取数据终止”的错误。
跟踪了一下PC寄存器的值,PC寄存器的值每执行一条语句,他的值就会增加4,
从0x80000000变化到0x80000010,再往下执行就变化到0x80000014,同时AXD弹出一个“取数据异常”出错的对话框。
4. 我没有修改任何程序,应该不会出现指针超出范围之类的错误,我使用的是周工的模板呀。

请大家帮忙看看, 是否ADS或者AXD设置里面我没有设置的地方?

使用特权

评论回复
6
XDream| | 2008-10-31 23:55 | 只看该作者

可能是JTAG设置问题

“我将J10设置了为从Bank0-RAM启动。Ban1-Flash。”

H-JTAG里添加"LPC2200.hfc"

使用特权

评论回复
7
ZLG_Dengz| | 2008-11-1 09:33 | 只看该作者

RE

如果你是要运行在外部RAM中: J10设置为"Bank0-RAM";H-JTAG里添加LPC2200_ram.hfc

如果你是要运行在外部flash中: J10设置为"Bank1-flash";H-JTAG里添加LPC2200.hfc

使用特权

评论回复
8
_编程浪子| | 2011-11-21 23:57 | 只看该作者
我碰到了同样的问题。。。。。
十来天没搞定

使用特权

评论回复
9
_编程浪子| | 2011-11-21 23:58 | 只看该作者
这个问题都那么久了   真是麻烦啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

51

帖子

0

粉丝