Reply by Kenneth Porter ● September 20, 2000 2000-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
Start a New Thread
Reply by ● September 19, 2000 2000-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
}
Start a New Thread