hello !
i got a big problem when emulating my own board.
this is my emulating evironment: CCS2.2
PCI emulator card with JTAG and my own 6203 board i can load some filter programs into my board, it works
fine!
the timer in the DSP is ok! and all the internal ram is accessable... when i config the DMA channel 0 to transfer data
only in internal data ram, i find it dosen't work, i am sure that the value
i wrote to the DMA0 regisers is correct, and the DMA0 START bit shows 1b(or
11b), which means the channel is running.
But the value in the source & destnine address register have no change! the counter register remain the original value too! (my program works right in c6203 sim and on c6201 EVM board.)
when i find DMA0 dosen't work, i test the other DMA channels
with the same code. then i find after my program is start, the STATUS
feild remains 10b, which means the channel is paused!
i checked my correct program a big number of times, it still
donsen't work!
my board's boot mode is set to external flash boot.
when reset, the DSP will move 64kBytes code from Flash to 0x00000000 through
DMA0, but this will not happen when JTAG is used, right ?
actually, the JTAG is always used on my borad. is the problem
come from the JTAG ? i don't know what can i do next... i greatly need your help. __________________________________________________ |
|
DMA dosen't work !
di he,
1. You should not be asking the 'boot mode' question - just try
it. Fill lower memory with a pattern, select Debug->reset CPU and look
at memory.
2. If your boot code is "stepping on" your program, modify your linker
command file to begin placing your program at 0x00010000.
3. The fact that the source, destination and counter remain the same seems
to indicate that your DMA is not running. Are you sure that *everything*
is initialized correctly?? Sometimes you can get lucky [actually unlucky]
and a particular device or board will function correctly without something being
initialized - like interrupts??
4. If all else fails, can you try your board in 'no boot'??
mikedunn
di he <x...@yahoo.com.cn> wrote:
|
di he, A DMA transfer is stopped on an emulator halt, which means that stepping through would pause the transfer. You might be looking at DMA results in a state of emulator halt, when DMA has not yet completed the transfer? I'd suggest to use a breakpoint and poll the control register in a loop before the breakpoint, as in pseudocode below: // press RUN button in CCS at this point DMA_start() // start a DMA transfer DMA_poll() // test if the transfer has completed printf("DMA done") // put a BREAKPOINT here Hope this helps, Andrew P.S. May be the chip on your board has broken? > Date: Tue, 4 Nov 2003 20:00:39 +0800 (CST) > From: di he <> > Subject: DMA dosen't work ! > > hello ! > i got a big problem when emulating my own board. > this is my emulating evironment: > > CCS2.2 > PCI emulator card with JTAG > and my own 6203 board > > i can load some filter programs into my board, it works fine! > the timer in the DSP is ok! > and all the internal ram is accessable... > when i config the DMA channel 0 to transfer data only in internal > data ram, i find it dosen't work, i am sure that the value i wrote to > the DMA0 regisers is correct, and the DMA0 START bit shows 1b(or 11b), > which means the channel is running. > But the value in the source & destnine address register have no > change! the counter register remain the original value too! > > (my program works right in c6203 sim and on c6201 EVM board.) > > when i find DMA0 dosen't work, i test the other DMA channels with the > same code. then i find after my program is start, the STATUS feild > remains 10b, which means the channel is paused! > > i checked my correct program a big number of times, it still donsen't > work! > > my board's boot mode is set to external flash boot. when reset, the > DSP will move 64kBytes code from Flash to 0x00000000 through DMA0, but this > will not happen when JTAG is used, right ? > actually, the JTAG is always used on my borad. is the problem come > from the JTAG ? > i don't know what can i do next... > i greatly need your help. |