I wrote a code to modify EMAC register
long* pDMAControl
pDMAControl=(long*)0x4a100120;
*pDMAControl=0x11;
wether I run this code on ARM or DSP , I can watch the register modified correctly by memory view.
On DSP level,I can change the poiner to 0x0a1000120,it does so.
But when I want to do it to the MDIO Control Register(0x4a100804),Only ARM can modify the register correctly, the code do it like clear the register on DSP side.
When I write 0x11 to 0x4a100804, the ARM display correctly 0x4a100804 0x000000011
but on dsp side ,it displays 0x4a100804 0x00000000
I write the value 0x0a100804,It did so .0x0a100804 0x00000000.
I tried to modify the other EMAC Registers on dsp side,some registers can be modified correctly like arm do but the others not.
We can see the L4 Fast Peripheral Memory Map
Cortex-A8 C674x DSP SIZE DEVICE NAME
0x4A10_0000 0x4A10_7FFF 0x0A10_0000 0x0A10_7FFF 32KB EMAC 0x4A10_8000 0x4A10_8FFF 0x0A10_8000 0x0A10_8FFF 4KB EMAC
Both dsp and arm can access EMAC Register directly
Can any one tell me what's wrong with My idea, or what I should do first to make dsp access EMAC Register correctly like ARM.
Thanks very much for your reply!