hi folks for our current project we have an Analog 2187N running in full memory mode. we must use DM overlays 0, 4 and 5 and also PM overlays 0, 4 and 5. The program is a C/assembler mix developped with VisualDSP 3.5. Switching the DM overlays works, also does the PM overlay switch, but only when using the simulator. When we use the emulator (218x EZICE) the programs stops at the first instruction of a newly switched PM overlay 4 or 5. The same behaviour occurs when running the board without ICE e.g. running the following in non overlay area with pmovlay set to 0 call do_someroutine; // currently in non overlay area ....... do_someroutine: // still in non overlay area pmovlay = 4; // switch to overlay 4 jump someroutine; // lies in overlay 4 .... and in overlay 4 someroutine: << stops here >> If I just enter the number 4 in the pmovlay register directly in the IDE, I can see the code switch in PM address 0x2000 and above only during the simulator session, in an emulator session there are only zeroes. Any idea for this different behaviour? thanks in advance Bernhard
adsp 218x problem with hardware overlays
Started by ●July 9, 2004
Reply by ●July 12, 20042004-07-12
problem solved! if you write software for a 2187 processor, use a 2187 and not a 2185 instead!!!! SHIT HAPPENS! thanks to everyone who spent a minute of thinking on my posting Bernhard Kowol <einerdinger@web.de> schrieb in im Newsbeitrag: 2l8aqvFa1tvkU1@uni-berlin.de...> hi folks > > for our current project we have an Analog 2187N running in full memorymode.> we must use DM overlays 0, 4 and 5 and also PM overlays 0, 4 and 5. > > The program is a C/assembler mix developped with VisualDSP 3.5. > > Switching the DM overlays works, also does the PM overlay switch, but only > when using the simulator. > When we use the emulator (218x EZICE) the programs stops at the first > instruction of a newly switched PM overlay 4 or 5. > The same behaviour occurs when running the board without ICE > > e.g. running the following in non overlay area with pmovlay set to 0 > > call do_someroutine; // currently in non overlay area > ....... > do_someroutine: // still in non overlay area > pmovlay = 4; // switch to overlay 4 > jump someroutine; // lies in overlay 4 > > .... and in overlay 4 > > someroutine: > << stops here >> > > > If I just enter the number 4 in the pmovlay register directly in theIDE,> I can see the code switch in PM address 0x2000 and above only during the > simulator session, in an emulator session there are only zeroes. > > Any idea for this different behaviour? > > thanks in advance > Bernhard > >