DSPRelated.com
Forums

Boot problems with 21160

Started by Stefano July 9, 2003
Hello

I use ADSP21160 mounted in a VME board. I develop my C++ software
with visualDSP++ 2.0 and Summit EZ-ICE emulator pod.
If I use emulator pod my software works fine, but if I build a
bootable file for a PROM,
it doesn't work. In particular the behavior is as follows:
1 - After I've debugged my program I build the release version
with "loader" (with default 160_prom.dxe).
2 I load a FLASH with the file.ldr (ASCII type) and I check that
all bytes are well written.
3 I reset the 21160 with a pushbutton on the board, but the program
doesn't start.

I've checked some signals with a scope:
1 There are only 256 pulse of RDH after reset goes high, boot
kernel seems not load the rest of the program. .
2 BMS goes low after reset goes high, but BMS remains low.

Note that if I load the file.ldr (Intel type) with visualDSP to
simulate the boot, it doesn't work too.
In particular the behavior is as follows:
1 - After a reset I note that boot kernel is correctly loaded on
disassembly window.
2 After a run the program doesn't work and after some seconds the
run stop and an "Attempt to write to non-existent memory" error
message appear at PM address 40204.
I note that PM memory form 40000 to 40200 is filled with "nop"
excluded locations 40103 and 40104. At 40005 there isn't a jump
instruction. My understanding was that the loader should
rewrite locations from 40000 to 40100 where the loader was first
executed.

Any suggestion?

Thanks in advance

Best Regards

Stefano




On Wed, 9 Jul 2003, Stefano wrote:

> Note that if I load the file.ldr (Intel type) with visualDSP to
> simulate the boot, it doesn't work too.
> In particular the behavior is as follows:
> 1 - After a reset I note that boot kernel is correctly loaded on
> disassembly window.
> 2 After a run the program doesn't work and after some seconds the
> run stop and an "Attempt to write to non-existent memory" error
> message appear at PM address 40204.
> I note that PM memory form 40000 to 40200 is filled with "nop"
> excluded locations 40103 and 40104. At 40005 there isn't a jump
> instruction. My understanding was that the loader should
> rewrite locations from 40000 to 40100 where the loader was first
> executed.
>
> Any suggestion?

Put in a break point half way thru your code and see if you get to
it. If not, start over and try 1/4 of the way. Do a binary search
until you find the place your code heads off into the weeds (or what
I call "never never land" when you overwrite your code with garbage!)
It's a simple silly bug. You just have to find it :-)

Patience, persistence, truth,
Dr. mike



--- In , Mike Rosing <eresrch@e...> wrote:
> On Wed, 9 Jul 2003, Stefano wrote:
>
> > Note that if I load the file.ldr (Intel type) with visualDSP to
> > simulate the boot, it doesn't work too.
> > In particular the behavior is as follows:
> > 1 - After a reset I note that boot kernel is correctly loaded on
> > disassembly window.
> > 2 After a run the program doesn't work and after some seconds
the
> > run stop and an "Attempt to write to non-existent memory" error
> > message appear at PM address 40204.
> > I note that PM memory form 40000 to 40200 is filled with "nop"
> > excluded locations 40103 and 40104. At 40005 there isn't a jump
> > instruction. My understanding was that the loader should
> > rewrite locations from 40000 to 40100 where the loader was first
> > executed.
> >
> > Any suggestion?
>
> Put in a break point half way thru your code and see if you get to
> it. If not, start over and try 1/4 of the way. Do a binary search
> until you find the place your code heads off into the weeds (or what
> I call "never never land" when you overwrite your code with

I call it "la-la land" :-)

> garbage!)
> It's a simple silly bug. You just have to find it :-)
>
> Patience, persistence, truth,
> Dr. mike