[ZLG-ARM] 晕,堆栈设错了?帮忙看一下

[复制链接]
3592|1
 楼主| ZorroCN 发表于 2009-4-16 15:19 | 显示全部楼层 |阅读模式
ST, ck, AC, Stack, IO
错误信息如下(IAR5.30,LPC2378,SmartARM2300板):<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;DLL&nbsp;version:&nbsp;V3.92a,&nbsp;compiled&nbsp;Oct&nbsp;&nbsp;6&nbsp;2008&nbsp;19:58:36<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;Firmware:&nbsp;J-Link&nbsp;ARM&nbsp;V6&nbsp;compiled&nbsp;Jul&nbsp;30&nbsp;2008&nbsp;11:24:59<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;JTAG&nbsp;speed&nbsp;is&nbsp;initially&nbsp;set&nbsp;to:&nbsp;32&nbsp;kHz<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;Initial&nbsp;reset&nbsp;was&nbsp;performed<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;TotalIRLen&nbsp;=&nbsp;4,&nbsp;IRPrint&nbsp;=&nbsp;0x01<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;J-Link&nbsp;found&nbsp;1&nbsp;JTAG&nbsp;device(s).&nbsp;ARM&nbsp;core&nbsp;Id:&nbsp;4F1F0F0F&nbsp;ARM7<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;Device&nbsp;at&nbsp;TAP0&nbsp;selected<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;JLINK&nbsp;command:&nbsp;ProjectFile&nbsp;=&nbsp;C:\uCOSARM\HansBoard\NXP\LPC2378\APP\settings\uCOSARM_Debug.jlink,&nbsp;return&nbsp;=&nbsp;0<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;JLINK&nbsp;command:&nbsp;device&nbsp;=&nbsp;LPC2378,&nbsp;return&nbsp;=&nbsp;0<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;TotalIRLen&nbsp;=&nbsp;4,&nbsp;IRPrint&nbsp;=&nbsp;0x01<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;RTCK&nbsp;reaction&nbsp;time&nbsp;is&nbsp;approx.&nbsp;189ns<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:42&nbsp;2009:&nbsp;Auto&nbsp;JTAG&nbsp;speed:&nbsp;Adaptive<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:45&nbsp;2009:&nbsp;40479&nbsp;bytes&nbsp;downloaded&nbsp;(14.88&nbsp;Kbytes/sec)<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:45&nbsp;2009:&nbsp;Loaded&nbsp;debugee:&nbsp;C:\uCOSARM\HansBoard\NXP\LPC2378\APP\Debug\Exe\uCOSARM.out<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:45&nbsp;2009:&nbsp;Target&nbsp;reset<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:57&nbsp;2009:&nbsp;Breakpoint&nbsp;hit:&nbsp;Code&nbsp;@&nbsp;bsp.c:278.9,&nbsp;type:&nbsp;default&nbsp;(auto)&nbsp;<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:57&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;pointer&nbsp;for&nbsp;stack&nbsp;'SVC_STACK'&nbsp;(currently&nbsp;0x40001B70)&nbsp;is&nbsp;outside&nbsp;the&nbsp;stack&nbsp;range&nbsp;(0x40000400&nbsp;to&nbsp;0x40000600)<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:59&nbsp;2009:&nbsp;Breakpoint&nbsp;hit:&nbsp;Code&nbsp;@&nbsp;bsp.c:278.9,&nbsp;type:&nbsp;default&nbsp;(auto)&nbsp;<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:55:59&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;pointer&nbsp;for&nbsp;stack&nbsp;'SVC_STACK'&nbsp;(currently&nbsp;0x40001B60)&nbsp;is&nbsp;outside&nbsp;the&nbsp;stack&nbsp;range&nbsp;(0x40000400&nbsp;to&nbsp;0x40000600)<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:56:01&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;pointer&nbsp;for&nbsp;stack&nbsp;'SVC_STACK'&nbsp;(currently&nbsp;0x40001B60)&nbsp;is&nbsp;outside&nbsp;the&nbsp;stack&nbsp;range&nbsp;(0x40000400&nbsp;to&nbsp;0x40000600)<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:56:02&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;'CSTACK'&nbsp;is&nbsp;filled&nbsp;to&nbsp;96%&nbsp;(992&nbsp;bytes&nbsp;used&nbsp;out&nbsp;of&nbsp;1024).&nbsp;The&nbsp;warning&nbsp;threshold&nbsp;is&nbsp;set&nbsp;to&nbsp;90.%<br />Thu&nbsp;Apr&nbsp;16&nbsp;14:56:02&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;pointer&nbsp;for&nbsp;stack&nbsp;'SVC_STACK'&nbsp;(currently&nbsp;0x40001B60)&nbsp;is&nbsp;outside&nbsp;the&nbsp;stack&nbsp;range&nbsp;(0x40000400&nbsp;to&nbsp;0x40000600)<br /><br /><br /><br /><br />很奇怪,堆栈指针一下子就已经跑到0x40001B70去了,中间连个90%的提示都没有,很显然不是堆栈设置过小,而是堆栈指针从一开始就根本没有在0x40000400&nbsp;to&nbsp;0x40000600这个区域内,各位帮忙看看这是哪里设置错了?<br /><br /><br />icf文件:<br /><br />/*###ICF###&nbsp;Section&nbsp;handled&nbsp;by&nbsp;ICF&nbsp;editor,&nbsp;don't&nbsp;touch!&nbsp;****/<br />/*-Editor&nbsp;annotation&nbsp;file-*/<br />/*&nbsp;IcfEditorFile=&quot;$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml&quot;&nbsp;*/<br />/*-Specials-*/<br />define&nbsp;symbol&nbsp;__ICFEDIT_intvec_start__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00000000;<br />/*-Memory&nbsp;Regions-*/<br />define&nbsp;symbol&nbsp;__ICFEDIT_region_ROM_start__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x00000044;<br />define&nbsp;symbol&nbsp;__ICFEDIT_region_ROM_end__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x0007FFFF;<br />define&nbsp;symbol&nbsp;__ICFEDIT_region_RAM_start__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x40000000;<br />define&nbsp;symbol&nbsp;__ICFEDIT_region_RAM_end__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x40007FFF;<br />/*-Sizes-*/<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_cstack__&nbsp;&nbsp;&nbsp;=&nbsp;0x400;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_svcstack__&nbsp;=&nbsp;0x200;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_irqstack__&nbsp;=&nbsp;0x100;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_fiqstack__&nbsp;=&nbsp;0x40;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_undstack__&nbsp;=&nbsp;0x10;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_abtstack__&nbsp;=&nbsp;0x10;<br />define&nbsp;symbol&nbsp;__ICFEDIT_size_heap__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x2000;<br />/****&nbsp;End&nbsp;of&nbsp;ICF&nbsp;editor&nbsp;section.&nbsp;###ICF###*/<br /><br /><br />define&nbsp;memory&nbsp;mem&nbsp;with&nbsp;size&nbsp;=&nbsp;4G;<br />define&nbsp;region&nbsp;ROM_region&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;mem:[from&nbsp;__ICFEDIT_region_ROM_start__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;__ICFEDIT_region_ROM_end__];<br />define&nbsp;region&nbsp;RAM_region&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;mem:[from&nbsp;__ICFEDIT_region_RAM_start__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;__ICFEDIT_region_RAM_end__];<br /><br />define&nbsp;symbol&nbsp;__region_USB_DMA_RAM_start__&nbsp;&nbsp;=&nbsp;0x7FD00000;<br />define&nbsp;symbol&nbsp;__region_USB_DMA_RAM_end__&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x7FD01FFF;<br />define&nbsp;region&nbsp;USB_DMA_RAM_region=&nbsp;mem:[from&nbsp;__region_USB_DMA_RAM_start__&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;__region_USB_DMA_RAM_end__];<br /><br />define&nbsp;symbol&nbsp;__region_EMAC_DMA_RAM_start__&nbsp;=&nbsp;0x7FE00000;<br />define&nbsp;symbol&nbsp;__region_EMAC_DMA_RAM_end__&nbsp;&nbsp;&nbsp;=&nbsp;0x7FE03FFF;<br />define&nbsp;region&nbsp;EMAC_DMA_RAM_region=&nbsp;mem:[from&nbsp;__region_EMAC_DMA_RAM_start__&nbsp;&nbsp;to&nbsp;__region_EMAC_DMA_RAM_end__];<br /><br />define&nbsp;block&nbsp;CSTACK&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_cstack__&nbsp;&nbsp;&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;SVC_STACK&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_svcstack__&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;IRQ_STACK&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_irqstack__&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;FIQ_STACK&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_fiqstack__&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;UND_STACK&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_undstack__&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;ABT_STACK&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_abtstack__&nbsp;{&nbsp;};<br />define&nbsp;block&nbsp;HEAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;alignment&nbsp;=&nbsp;8,&nbsp;size&nbsp;=&nbsp;__ICFEDIT_size_heap__&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;};<br /><br />initialize&nbsp;by&nbsp;copy&nbsp;{&nbsp;readwrite&nbsp;};<br />do&nbsp;not&nbsp;initialize&nbsp;&nbsp;{&nbsp;section&nbsp;.noinit&nbsp;};<br />do&nbsp;not&nbsp;initialize&nbsp;&nbsp;{&nbsp;section&nbsp;USB_DMA_RAM&nbsp;};<br />do&nbsp;not&nbsp;initialize&nbsp;&nbsp;{&nbsp;section&nbsp;EMAC_DMA_RAM&nbsp;};<br /><br />place&nbsp;at&nbsp;address&nbsp;mem:__ICFEDIT_intvec_start__&nbsp;{&nbsp;readonly&nbsp;section&nbsp;.intvec&nbsp;};<br /><br />place&nbsp;in&nbsp;ROM_region&nbsp;&nbsp;&nbsp;{&nbsp;readonly&nbsp;};<br />place&nbsp;in&nbsp;RAM_region&nbsp;&nbsp;&nbsp;{&nbsp;readwrite,<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;block&nbsp;CSTACK,&nbsp;block&nbsp;SVC_STACK,&nbsp;block&nbsp;IRQ_STACK,&nbsp;block&nbsp;FIQ_STACK,<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;block&nbsp;UND_STACK,&nbsp;block&nbsp;ABT_STACK,&nbsp;block&nbsp;HEAP&nbsp;};<br />place&nbsp;in&nbsp;USB_DMA_RAM_region<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;readwrite&nbsp;data&nbsp;section&nbsp;USB_DMA_RAM&nbsp;};<br />place&nbsp;in&nbsp;EMAC_DMA_RAM_region<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;readwrite&nbsp;data&nbsp;section&nbsp;EMAC_DMA_RAM&nbsp;};<br /><br /><br />另外,在xcl文件里面有这么一段:<br /><br />-D_CSTACK_SIZE=100<br />-D_IRQ_STACK_SIZE=100<br />-D_FIQ_STACK_SIZE=0<br />-D_SVC_STACK_SIZE=100<br />-D_ABT_STACK_SIZE=0<br />-D_UND_STACK_SIZE=0<br />-D_HEAP_SIZE=100<br /><br />-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)FIQ_STACK+_FIQ_STACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)ABT_STACK+_ABT_STACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)UND_STACK+_UND_STACK_SIZE=RAMSTART-RAMEND<br />-Z(DATA)HEAP+_HEAP_SIZE=RAMSTART-RAMEND<br /><br />两者设置的明明是同一个东西,但是数值却不一样,尤其是xcl文件,把几个堆栈都定义在整个RAM空间内了?
ictty 发表于 2009-5-14 13:36 | 显示全部楼层

看代码?

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

84

帖子

0

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