Equipment
phyCore_AM335x board
CCSv6 vs 6.1.0.00104
XDS560v2 USB Emulator,
Windows 7, 64-bit, Service Pack 1
am335x_sysbios_ind_sdk_1.1.0.6
Compiler TI v5.2.4
PRU Compiler Tools 2.1.1
SYSBIOS(Target Content) 6.40.3.39
Hi,
the board I am using has a transceiver LAN8710ai connected to the processor AM3359.
Now I would like to disable the transceiver to use some of the pins as GPIOs instead.
Therefore I would like to write to the BASIC CONTROL REGISTER of the transceiver to set the ISOLATE bit or the POWER DOWN bit.
The problem is that when HWREG tries to write to the MDIO_CONTROL register the debugger stops and reports
either 'No source available for "0x8003c010"'
or it goes to the function loader_exit() which is called in the abort() function
At first I thought that the memory is not available, but the .gel-file contains these lines:
GEL_MapOff();
GEL_MapReset();
...
...
GEL_MapAddStr(0x80000000, 0, 0x20000000, "R|W", 0); // 512MB
GEL_MapOn();
So it should be there.
Also writing to 0x8003c010 in the Memory Browser is possible.
The code I used is
MDIOInit(0x4A101000, 50000000, 1000000); // 0x4A101000 is the base address of the MDIO registers
with
void MDIOInit(unsigned int baseAddr, unsigned int mdioInputFreq,
unsigned int mdioOutputFreq)
{
unsigned int clkDiv = (mdioInputFreq/mdioOutputFreq) - 1;
HWREG(baseAddr + MDIO_CONTROL) = ((clkDiv & MDIO_CONTROL_CLKDIV)
| MDIO_CONTROL_ENABLE
| MDIO_CONTROL_PREAMBLE
| MDIO_CONTROL_FAULTENB);
}
The last assembly instructiob of HWREG is
E580C004 STR R12, [R0, #4]
where R12 = 0x40140031
shall be stored to address 0x4A101000+4.
This instruction is still reached.
But then the error shows up.
Does anybody have an idea what the reason might be for this behaviour?
Thank you.
Regards,
Martin H.