- some constants moved from Dispatch to DataPacket
git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@54 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
@@ -234,15 +234,15 @@ public class MC68332 {
|
|||||||
private static DataPacket transmit(byte STYPE, int dataLength)
|
private static DataPacket transmit(byte STYPE, int dataLength)
|
||||||
throws USBException, DispatchException, BDIException {
|
throws USBException, DispatchException, BDIException {
|
||||||
// initialize packet
|
// initialize packet
|
||||||
sendData[0] = Dispatch.PACKET_HEADER;
|
sendData[0] = DataPacket.PACKET_HEADER;
|
||||||
sendData[1] = Dispatch.MTYPE_BDI;
|
sendData[1] = Dispatch.MTYPE_BDI;
|
||||||
sendData[2] = STYPE;
|
sendData[2] = STYPE;
|
||||||
sendData[3] = (byte) (dataLength / 0x100); // length
|
sendData[3] = (byte) (dataLength / 0x100); // length
|
||||||
sendData[4] = (byte) (dataLength & 0xFF);
|
sendData[4] = (byte) (dataLength & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + dataLength] = Dispatch.PACKET_END;
|
sendData[DataPacket.PACKET_DATA_OFFSET + dataLength] = DataPacket.PACKET_END;
|
||||||
|
|
||||||
// write USB-command
|
// write USB-command
|
||||||
USBDevice.write(sendData, dataLength + DataPacket.PACKET_MIN_LENGTH);
|
USBDevice.write_BDI(sendData, dataLength + DataPacket.PACKET_MIN_LENGTH);
|
||||||
|
|
||||||
// read result
|
// read result
|
||||||
DataPacket data = Dispatch.readBDI();
|
DataPacket data = Dispatch.readBDI();
|
||||||
@@ -253,7 +253,7 @@ public class MC68332 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inserts 17-bits of data (3 bytes) into the send buffer.
|
* Inserts 17-bits of data (3 bytes) into the send bufferList.
|
||||||
*
|
*
|
||||||
* @param data
|
* @param data
|
||||||
* 17 bits (3 bytes) of data
|
* 17 bits (3 bytes) of data
|
||||||
@@ -267,9 +267,9 @@ public class MC68332 {
|
|||||||
// TODO check this:
|
// TODO check this:
|
||||||
// sendData[Dispatch.PACKET_DATA_OFFSET + offset] = (byte) (((data >>>
|
// sendData[Dispatch.PACKET_DATA_OFFSET + offset] = (byte) (((data >>>
|
||||||
// 9) & 0x7F) | 0x80);
|
// 9) & 0x7F) | 0x80);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset] = (byte) ((data >>> 9) & 0x7F);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset] = (byte) ((data >>> 9) & 0x7F);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 1] = (byte) ((data >>> 1) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 1] = (byte) ((data >>> 1) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 2] = (byte) ((data & 0x01) << 7);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 2] = (byte) ((data & 0x01) << 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -497,16 +497,16 @@ public class MC68332 {
|
|||||||
}
|
}
|
||||||
while (currentIndex < dataLength) {
|
while (currentIndex < dataLength) {
|
||||||
// FILLB
|
// FILLB
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4] = (byte) ((FILLB >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4] = (byte) ((FILLB >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = (byte) (FILLB & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = (byte) (FILLB & 0xFF);
|
||||||
// DATA (address)
|
// DATA (address)
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 2] = 0;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 2] = 0;
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 3] = (byte) (downloadData[currentIndex] & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 3] = (byte) (downloadData[currentIndex] & 0xFF);
|
||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
// send NOP to get result of last write
|
// send NOP to get result of last write
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4] = NOP;
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = NOP;
|
||||||
data = transmit(STYPE_BDI_17FILL_BYTE_WORD, dataLength * 4 + 2);
|
data = transmit(STYPE_BDI_17FILL_BYTE_WORD, dataLength * 4 + 2);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -516,16 +516,16 @@ public class MC68332 {
|
|||||||
}
|
}
|
||||||
while (currentIndex < dataLength) {
|
while (currentIndex < dataLength) {
|
||||||
// FILLW
|
// FILLW
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4] = (byte) ((FILLW >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4] = (byte) ((FILLW >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = (byte) (FILLW & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = (byte) (FILLW & 0xFF);
|
||||||
// DATA (address)
|
// DATA (address)
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 2] = (byte) ((downloadData[currentIndex] >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 2] = (byte) ((downloadData[currentIndex] >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 3] = (byte) (downloadData[currentIndex] & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 3] = (byte) (downloadData[currentIndex] & 0xFF);
|
||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
// send NOP to get result of last write
|
// send NOP to get result of last write
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4] = NOP;
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 4 + 1] = NOP;
|
||||||
data = transmit(STYPE_BDI_17FILL_BYTE_WORD, dataLength * 4 + 2);
|
data = transmit(STYPE_BDI_17FILL_BYTE_WORD, dataLength * 4 + 2);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -535,19 +535,19 @@ public class MC68332 {
|
|||||||
}
|
}
|
||||||
while (currentIndex < dataLength) {
|
while (currentIndex < dataLength) {
|
||||||
// FILL
|
// FILL
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6] = (byte) ((FILLL >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6] = (byte) ((FILLL >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 1] = (byte) (FILLL & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 1] = (byte) (FILLL & 0xFF);
|
||||||
// MS data
|
// MS data
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 2] = (byte) ((downloadData[currentIndex] >>> 24) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 2] = (byte) ((downloadData[currentIndex] >>> 24) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 3] = (byte) ((downloadData[currentIndex] >>> 16) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 3] = (byte) ((downloadData[currentIndex] >>> 16) & 0xFF);
|
||||||
// LS data
|
// LS data
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 4] = (byte) ((downloadData[currentIndex] >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 4] = (byte) ((downloadData[currentIndex] >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 5] = (byte) (downloadData[currentIndex] & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 5] = (byte) (downloadData[currentIndex] & 0xFF);
|
||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
// send NOP to get result of last write
|
// send NOP to get result of last write
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6] = NOP;
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + currentIndex * 6 + 1] = NOP;
|
sendData[DataPacket.PACKET_DATA_OFFSET + currentIndex * 6 + 1] = NOP;
|
||||||
data = transmit(STYPE_BDI_17FILL_LONG, dataLength * 6 + 2);
|
data = transmit(STYPE_BDI_17FILL_LONG, dataLength * 6 + 2);
|
||||||
System.out.println("FILL: Transmit: " + (dataLength * 6 + 2));
|
System.out.println("FILL: Transmit: " + (dataLength * 6 + 2));
|
||||||
break;
|
break;
|
||||||
@@ -595,11 +595,11 @@ public class MC68332 {
|
|||||||
// fill the packet with {DUMPB} + 1 NOP at the end
|
// fill the packet with {DUMPB} + 1 NOP at the end
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < nofData; i++) {
|
for (i = 0; i < nofData; i++) {
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2] = (byte) ((DUMPB >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2] = (byte) ((DUMPB >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (DUMPB & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (DUMPB & 0xFF);
|
||||||
}
|
}
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2] = (byte) ((NOP >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2] = (byte) ((NOP >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (NOP & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (NOP & 0xFF);
|
||||||
dataSize = i * 2 + 2;
|
dataSize = i * 2 + 2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -607,11 +607,11 @@ public class MC68332 {
|
|||||||
nofData = MAX_NOF_BYTES_WORDS_FILL;
|
nofData = MAX_NOF_BYTES_WORDS_FILL;
|
||||||
// fill the packet with {DUMPW} + 1 NOP at the end
|
// fill the packet with {DUMPW} + 1 NOP at the end
|
||||||
for (i = 0; i < nofData; i++) {
|
for (i = 0; i < nofData; i++) {
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2] = (byte) ((DUMPW >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2] = (byte) ((DUMPW >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (DUMPW & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (DUMPW & 0xFF);
|
||||||
}
|
}
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2] = (byte) ((NOP >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2] = (byte) ((NOP >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (NOP & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 2 + 1] = (byte) (NOP & 0xFF);
|
||||||
dataSize = i * 2 + 2;
|
dataSize = i * 2 + 2;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -619,13 +619,13 @@ public class MC68332 {
|
|||||||
nofData = MAX_NOF_LONGS_FILL;
|
nofData = MAX_NOF_LONGS_FILL;
|
||||||
// fill the packet with {DUMPL + NOP} + 1 NOP at the end
|
// fill the packet with {DUMPL + NOP} + 1 NOP at the end
|
||||||
for (i = 0; i < nofData; i++) {
|
for (i = 0; i < nofData; i++) {
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4] = (byte) ((DUMPL >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4] = (byte) ((DUMPL >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4 + 1] = (byte) (DUMPL & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4 + 1] = (byte) (DUMPL & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4 + 2] = (byte) ((NOP >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4 + 2] = (byte) ((NOP >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4 + 3] = (byte) (NOP & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4 + 3] = (byte) (NOP & 0xFF);
|
||||||
}
|
}
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4] = (byte) ((NOP >>> 8) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4] = (byte) ((NOP >>> 8) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + i * 4 + 1] = (byte) (NOP & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + i * 4 + 1] = (byte) (NOP & 0xFF);
|
||||||
dataSize = i * 4 + 2;
|
dataSize = i * 4 + 2;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -124,18 +124,18 @@ public class MPC555 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void initPacket(byte STYPE, int dataLength) {
|
private static void initPacket(byte STYPE, int dataLength) {
|
||||||
sendData[0] = Dispatch.PACKET_HEADER;
|
sendData[0] = DataPacket.PACKET_HEADER;
|
||||||
sendData[1] = Dispatch.MTYPE_BDI;
|
sendData[1] = Dispatch.MTYPE_BDI;
|
||||||
sendData[2] = STYPE;
|
sendData[2] = STYPE;
|
||||||
sendData[3] = (byte) (dataLength / 0x100); // length
|
sendData[3] = (byte) (dataLength / 0x100); // length
|
||||||
sendData[4] = (byte) (dataLength & 0xFF);
|
sendData[4] = (byte) (dataLength & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + dataLength] = Dispatch.PACKET_END;
|
sendData[DataPacket.PACKET_DATA_OFFSET + dataLength] = DataPacket.PACKET_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DataPacket transmit(int dataLength) throws USBException,
|
private static DataPacket transmit(int dataLength) throws USBException,
|
||||||
DispatchException, BDIException {
|
DispatchException, BDIException {
|
||||||
// write USB-command
|
// write USB-command
|
||||||
USBDevice.write(sendData, dataLength + DataPacket.PACKET_MIN_LENGTH);
|
USBDevice.write_BDI(sendData, dataLength + DataPacket.PACKET_MIN_LENGTH);
|
||||||
|
|
||||||
// read result
|
// read result
|
||||||
DataPacket data = Dispatch.readBDI();
|
DataPacket data = Dispatch.readBDI();
|
||||||
@@ -161,11 +161,11 @@ public class MPC555 {
|
|||||||
b |= 0x20;
|
b |= 0x20;
|
||||||
}
|
}
|
||||||
b |= (byte) (data >>> 27);
|
b |= (byte) (data >>> 27);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset] = b;
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset] = b;
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 1] = (byte) ((data >>> 19) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 1] = (byte) ((data >>> 19) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 2] = (byte) ((data >>> 11) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 2] = (byte) ((data >>> 11) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 3] = (byte) ((data >>> 3) & 0xFF);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 3] = (byte) ((data >>> 3) & 0xFF);
|
||||||
sendData[Dispatch.PACKET_DATA_OFFSET + offset + 4] = (byte) ((data & 0x07) << 5);
|
sendData[DataPacket.PACKET_DATA_OFFSET + offset + 4] = (byte) ((data & 0x07) << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DataPacket transfer(boolean modeBit, boolean controlBit,
|
private static DataPacket transfer(boolean modeBit, boolean controlBit,
|
||||||
|
|||||||
Reference in New Issue
Block a user