I've got a strange problem with reading the RAM of the ADSP-21489. Maybe somebody can help me.
My platform: ADSP-21489 EZ Board, connected with the debugger ADZS-USB-ICE. I use the Crosscore Embedded Studio.
First, what I want to do: I want to calculate the CRC of the program I loaded into the RAM.
As this did not work, I took a closer look to the RAM: I walked through the RAM and trasmitted the content via UART to a PC and compared it to the expected content. In my little test program, there where three differences.
Two things, I really don't understand:
- If I take the debugger to read this memory position, I get the value I expect. But it is different to the value I received via UART. That means, my program gets wrong results, reading the memory
- If I debug the program step by step, I get the result I expect: To clearify this: My program starts like this
unsigned int mem_val = 0u ;
mem_val = *( (unsigned int*) (0x00092000u+ 411u) ) ;
If I debug this program step by step, the result in mem_val is 0x00814336 (thats the value I expect to get)
If I set a breakpoint on the third NOP() and run the program, the result in mem_val is 0x00C14336 (this value is wrong).
I've a second EZ-Board, connected with the EZ-KIT Lite Debug Agent. There I get the same results. I had also some other test programs. The first error was exactly the same (memory location and values). Then, there were some other differences.
Can anybody explain this differences? I attach my test project - maybe you can reconstruct my results. The differences are:
Memory location(DM) 0x0009219B: 0x00c14336 instead of 0x00814336
Memory location(DM) 0x00092397: 0x00c1fffc instead of 0x9d08fffc
Memory location(DM) 0x000923E5: 0x00c1211b instead of 0x0081211b
Thanks for help,