[ZLG-ARM] 周立功SmartARM2200模板无法进行调试--------------求助

[复制链接]
4073|8
 楼主| swordlife 发表于 2008-10-18 15:40 | 显示全部楼层 |阅读模式
目前学习uCOS,从别出弄了一个周公的SmartARM2200的开发板来。从周公的网站上下载了一个LPC2200的ADS模板,【ARM&nbsp;<br />Executable&nbsp;Image&nbsp;for&nbsp;UCOSII(for&nbsp;lpc2200)】&nbsp;就用他这个模板程序,自己没有增加任何的代码程序。<br />在ADS里面设置了ucos源文件等的路径,编译通过,(0错误)<br />1.安装了H-JTAG软件,使用H-JTAG能够检测到ARM芯片,显示ARM7TDMI-S&nbsp;0x4F1F0F0F。<br />2.调用AXD通过JTAG端口调试uCOS,发现运行&nbsp;Startup.s文件的程序时候出错,程序如下:<br />.........<br />;中断向量表<br />Reset<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;ResetAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;UndefinedAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;SWI_Addr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;PrefetchAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;DataAbortAddr&nbsp;&nbsp;;(运行到这一句就AXD就回弹出一个出错对话框)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xb9205f80<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;[PC,&nbsp;#-0xff0]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;FIQ_Addr<br />.........<br />中的&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;DataAbortAddr会弹出一个错误信息,见图片1<br /><br /><br />请教其他人,说是地址没有设置对。我所用的分散加载文件为mem_b&nbsp;,ADS相关设置如下图<br /><br />运行到main.c文件中,遇到了调用其他函数的语句,就直接跳过,根本不执行调用函数。<br /><br />请教各位是什么问题?
 楼主| swordlife 发表于 2008-10-18 15:45 | 显示全部楼层

补充说明

我将J10设置了为从Bank0-RAM启动。Ban1-Flash。
zlg_lly 发表于 2008-10-21 18:50 | 显示全部楼层

re:swordlife

您好!<br />应该是您的ADS设置错了,ARM&nbsp;Executable&nbsp;Image&nbsp;for&nbsp;UCOSII(for&nbsp;lpc2200)这个模板内已经将分散加载文件等都设置好了,无需要用户自己设置。从您的贴的图来看,您选择在片外调试,但您选择了在片内调试的分散加载文件。
 楼主| swordlife 发表于 2008-10-30 15:39 | 显示全部楼层

还是不行

感谢ZLG_LLY的回答。我用的是模板内的分散加载文件,没修改过。(出差了一个多星期,现在回来继续整这个问题)<br /><br />我调试时候,出现的错误提示是“数据终止”的提示。图片如下:<br />查阅了说明说,mem_b的分散加载文件是片外RAM调试时候的加载文件。所以mem_b应该没哟加载错误。<br />1.mem_b.scf文件内容如下:<br />;/****************************************Copyright&nbsp;(c)**************************************************<br />;**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Guangzou&nbsp;ZLG-MCU&nbsp;Development&nbsp;Co.,LTD.<br />;**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;graduate&nbsp;school<br />;**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.zlgmcu.com<br />;**<br />;**--------------File&nbsp;Info-------------------------------------------------------------------------------<br />;**&nbsp;File&nbsp;Name:&nbsp;men_b.scf<br />;**&nbsp;Last&nbsp;modified&nbsp;Date:&nbsp;&nbsp;2004-09-17<br />;**&nbsp;Last&nbsp;Version:&nbsp;1.0<br />;**&nbsp;Descriptions:&nbsp;Scatter&nbsp;File<br />;**<br />;**------------------------------------------------------------------------------------------------------<br />;**&nbsp;Created&nbsp;By:&nbsp;Chenmingji<br />;**&nbsp;Created&nbsp;date:&nbsp;&nbsp;&nbsp;2004-09-17<br />;**&nbsp;Version:&nbsp;1.0<br />;**&nbsp;Descriptions:&nbsp;First&nbsp;version<br />;**<br />;**------------------------------------------------------------------------------------------------------<br />;**&nbsp;Modified&nbsp;by:<br />;**&nbsp;Modified&nbsp;date:<br />;**&nbsp;Version:<br />;**&nbsp;Descriptions:<br />;**<br />;********************************************************************************************************/<br /><br />ROM_LOAD&nbsp;0x80000000<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM_EXEC&nbsp;0x80000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;IRAM&nbsp;0x40000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(MyStacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS_BOTTOM&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(StackBottom)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS&nbsp;0x40004000&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Stacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ERAM&nbsp;0x80040000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Heap)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP_BOTTOM&nbsp;0x80080000&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(HeapTop)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br /><br />2.所使用的ARM芯片型号应该是LPC2210。开发板上的CPU&nbsp;PACK地方上的ARM芯片标有“Easy&nbsp;ARM2200”字样,所以应该是LPC2210。<br /><br />3.&nbsp;AXD调试出错的提示是<br />DBT&nbsp;Warning&nbsp;00135:&nbsp;Cannot&nbsp;set&nbsp;breakpoints&nbsp;in&nbsp;literal&nbsp;pools<br /><br /><br />请周公ARM团队帮忙解答这个问题?<br />
 楼主| swordlife 发表于 2008-10-31 15:13 | 显示全部楼层

继续提问

问题问了这么就了,还是没有得到解答。<br />1.从网上搜寻了一些关于“取数据终止”的帖子看了下,都说是取数据地址到了合法地址范围之外。<br /><br />2.我使用的周立功的&nbsp;ARM&nbsp;EXecutable&nbsp;Image&nbsp;for&nbsp;lpc2200模板建立了一个项目,照着周立功配套教程上做第一个GPIO口的试验,自己没有修改任何程序。编译通过,0个错误。<br /><br />3.进入AXD调试的时候,就会出现上面“取数据终止”的错误。<br />跟踪了一下PC寄存器的值,PC寄存器的值每执行一条语句,他的值就会增加4,<br />从0x80000000变化到0x80000010,再往下执行就变化到0x80000014,同时AXD弹出一个“取数据异常”出错的对话框。<br />4.&nbsp;我没有修改任何程序,应该不会出现指针超出范围之类的错误,我使用的是周工的模板呀。<br /><br />请大家帮忙看看,&nbsp;是否ADS或者AXD设置里面我没有设置的地方?<br />
XDream 发表于 2008-10-31 23:55 | 显示全部楼层

可能是JTAG设置问题

“我将J10设置了为从Bank0-RAM启动。Ban1-Flash。”<br /><br />H-JTAG里添加&quot;LPC2200.hfc&quot;
ZLG_Dengz 发表于 2008-11-1 09:33 | 显示全部楼层

RE

如果你是要运行在外部RAM中:&nbsp;J10设置为&quot;Bank0-RAM&quot;;H-JTAG里添加LPC2200_ram.hfc<br /><br />如果你是要运行在外部flash中:&nbsp;J10设置为&quot;Bank1-flash&quot;;H-JTAG里添加LPC2200.hfc
_编程浪子 发表于 2011-11-21 23:57 | 显示全部楼层
我碰到了同样的问题。。。。。
十来天没搞定
_编程浪子 发表于 2011-11-21 23:58 | 显示全部楼层
这个问题都那么久了   真是麻烦啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部