I am running BitsyX Windows CE Ver.(4.10.32) on PXA255. I have taken CFBus Driver Rev4 and implemented the ReadPCMCIA sample application using the SDK 4.1.
I was able to probe the J9 pins /IRQ,/MEMWR,/MEMRD, /CE2 and D8 ( HiByte LSbit ) with a scope. Using the the following code derived from the sample:
ULONG ReadWriteTestThread(void *arg)
{
int i;
int ret;
BOOL failed = FALSE;
BOOL fastmode = TRUE;
// turn on slot
BusPower(CF, BITSY_5V);
outbuffer[0] = 0xff00;
outbuffer[1] = 0x00ff;
// Map our base address for SLOT1 Memory space
pMem = MapAddress(SLOT1_MEM_ADDR);
while(true)
{
// SetFASTMode(PCMCIA, fastmode);
// RETAILMSG(1, (_T("FAST = %d:\r\n"), fastmode));
BusReset(CF, 1000);
for(BYTE timing = 31 ; timing >= 0 ; timing--)
{
// set speed
SetMemorySpeed(CF, timing);
Sleep(100);
// RETAILMSG(1, (TEXT("Writing...\r\n")));
start = GetTickCount();
for(int p = 0 ; p < ITERATIONS ; p++)
{
RETAILMSG(1, (TEXT("Writing...%d\r"), p ));
// write data - buffer is in bytes, hence the /2
WriteData16(pMem, 0, (USHORT *)outbuffer, 1);
WriteData16(pMem, 0, (USHORT *)&outbuffer[1], 1);
// read it back - buffer is in bytes, hence the /2
ReadData16(pMem, 0, (USHORT *)inbuffer, 1);
}
}
}
}
In the ADSLOAD.HWT file I tried setting the number of PCMCIA slots to 1 as well as used the default value of 2:
0xA1E30014 0x0000001 ; Number of PCMCIA Sockets
Is there an additional entry needed in the ADSLOAD.REG to turn off the CF slot to make sure WinCE driver are not interfering with the ReadPCNCIA application.
I dont not see the J9 pins /IRQ,/MEMWR,/MEMRD, /CE2 asserted during the write or read function. The pullup values /IRQ,/MEMWR,/MEMRD, /CE2 all show 5 Volts.
Why are the J9 Lines associated with CF read and wrtie not being asserted?
During the BOOT process ( Boot Version 1.06 ) the boot loader recognizes a complact flash card and any boot loader files. Monitoring the J9 Bus showed all the appropriate lines active during the CF card read process of the boot loader.