Reply by Kenneth Porter September 20, 20002000-09-20
On Tue, 19 Sep 2000 14:48:32 -0700, wrote:

> I'm using VisualDSP (ADSP21061). When I'm in the debugger, I'm getting a
>
> MEMORY ADDRESS ERROR
> Address out of memory range (40000|-4ffff|)
>
> when I try to goto short word memory address 0x600000.

Do you have the latest service pack (SP3) installed? Have you submitted
the bug to ADI? Tell them which ICE you're using and what target setup
you have configured. Try to provide a tiny executable with just the
variable in question and a simple recipe for how to trigger the error.

Kenneth Porter
Kensington Laboratories, Inc.
mailto:
http://www.kensingtonlabs.com



Reply by September 19, 20002000-09-19


Hi,

I'm using VisualDSP (ADSP21061). When I'm in the debugger, I'm getting a

MEMORY ADDRESS ERROR
Address out of memory range (40000|-4ffff|)

when I try to goto short word memory address 0x600000.

The debugger memory map shows the segment in question, and the goto/browse
window shows the variable in question.

Is this some limitation on the debugger's part? How would I work around this?

My very unimaginative .ldf looks like:

MEMORY
{
seg_rth
{ TYPE(PM RAM) START(0x00020000) END(0x000200ff) WIDTH(48) }
seg_init
{ TYPE(PM RAM) START(0x00020100) END(0x0002010f) WIDTH(48) }
seg_pmco
{ TYPE(PM RAM) START(0x00020110) END(0x00021fff) WIDTH(48) }
seg_dmda
{ TYPE(DM RAM) START(0x00023000) END(0x00023fff) WIDTH(32) }

seg_pmco
{ TYPE(PM RAM) START(0x00024000) END(0x00025fff) WIDTH(48) }
seg_dmda
{ TYPE(DM RAM) START(0x00027000) END(0x00027dff) WIDTH(32) }
seg_heap
{ TYPE(DM RAM) START(0x00027e00) END(0x00027eff) WIDTH(32) }
seg_stak
{ TYPE(DM RAM) START(0x00027f00) END(0x00027fff) WIDTH(32) }

seg_boot
{ TYPE(PM RAM) START(0x00400000) END(0x00401fff) WIDTH(16) }
seg_flash
{ TYPE(PM RAM) START(0x00402000) END(0x0043afff) WIDTH(16) }
seg_fpga_code
{ TYPE(DM RAM) START(0x0043b000) END(0x0043ffff) WIDTH(16) }
seg_sram
{ TYPE(DM RAM) START(0x00500000) END(0x0053ffff) WIDTH(48) }
seg_dpram_write
{ TYPE(DM RAM) START(0x00600000) END(0x006003ff) WIDTH(16) }
seg_dpram_read
{ TYPE(DM RAM) START(0x00600400) END(0x006007ff) WIDTH(16) }

seg_fpga_regs
{ TYPE(DM PORT) START(0x00700000) END(0x0070002f) WIDTH(16) }
seg_unbanked
{ TYPE(DM PORT) START(0x00800000) END(0x00800000) WIDTH(16) }

}

PROCESSOR p0
{
LINK_AGAINST( $COMMAND_LINE_LINK_AGAINST)
OUTPUT( $COMMAND_LINE_OUTPUT_FILE )

SECTIONS
{

// .text output section
seg_rth
{ INPUT_SECTIONS( $OBJECTS(seg_rth) $LIBRARIES(seg_rth)) }
>seg_rth

seg_init
{ INPUT_SECTIONS( $OBJECTS(seg_init) $LIBRARIES(seg_init)) }
>seg_init

seg_pmco
{ INPUT_SECTIONS( $OBJECTS(seg_pmco) $LIBRARIES(seg_pmco)) }
>seg_pmco

seg_dmda
{ INPUT_SECTIONS( $OBJECTS(seg_dmda) $LIBRARIES(seg_dmda)) }
> seg_dmda

stackseg
{
// allocate a stack for the application
ldf_stack_space = .;
ldf_stack_length = MEMORY_SIZEOF(seg_stak);
} > seg_stak

heap
{
// allocate a heap for the application
ldf_heap_space = .;
ldf_heap_end = ldf_heap_space + MEMORY_SIZEOF(seg_heap) - 1;
ldf_heap_length = ldf_heap_end - ldf_heap_space;
} > seg_heap

seg_boot
{ INPUT_SECTIONS( $OBJECTS(seg_boot) $LIBRARIES(seg_boot)) }
>seg_boot

seg_fpga_code
{ INPUT_SECTIONS( $OBJECTS(seg_fpga_code)
$LIBRARIES(seg_fpga_code)) }
>seg_fpga_code

seg_sram
{ INPUT_SECTIONS( $OBJECTS(seg_sram) $LIBRARIES(seg_sram)) }
>seg_sram

seg_dpram_write
{ INPUT_SECTIONS( $OBJECTS(seg_dpram_write)
$LIBRARIES(seg_dpram_write)) }
>seg_dpram_write

seg_dpram_read
{ INPUT_SECTIONS( $OBJECTS(seg_dpram_read)
$LIBRARIES(seg_dpram_read)) }
>seg_dpram_read

seg_fpga_regs
{ INPUT_SECTIONS( $OBJECTS(seg_fpga_regs)
$LIBRARIES(seg_fpga_regs)) }
>seg_fpga_regs

seg_unbanked
{ INPUT_SECTIONS( $OBJECTS(seg_unbanked) $LIBRARIES(seg_unbanked))
}
>seg_unbanked

}