- USB_Device_getMaxPacketSize added
- changes for new Java-layout git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@103 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
@@ -2,31 +2,31 @@ MODULE UsbBDI;
|
|||||||
IMPORT SYS := SYSTEM, BDI := UsbBDIDll, Log := StdLog, ComTools, WinApi, Services, TextModels, Ports,
|
IMPORT SYS := SYSTEM, BDI := UsbBDIDll, Log := StdLog, ComTools, WinApi, Services, TextModels, Ports,
|
||||||
Files, HostFiles;
|
Files, HostFiles;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
ttDefaultPeriod = 500; (*500 ms*) ttPipeHandDisconnected = -1;
|
ttDefaultPeriod = 500; (*500 ms*) ttPipeHandDisconnected = -1;
|
||||||
nul = 0X;
|
nul = 0X;
|
||||||
ascLf = 0AX; ascCr = 0DX;
|
ascLf = 0AX; ascCr = 0DX;
|
||||||
CONST
|
CONST
|
||||||
FALSE_ = 0;
|
FALSE_ = 0;
|
||||||
PATH_LENGTH* = 512;
|
PATH_LENGTH* = 512;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
JAVA_OUT_FILENAME = "JavaOut.txt";
|
JAVA_OUT_FILENAME = "JavaOut.txt";
|
||||||
JAVA_ERR_FILENAME = "JavaErr.txt";
|
JAVA_ERR_FILENAME = "JavaErr.txt";
|
||||||
INVALID_HANDLE_VALUE = -1;
|
INVALID_HANDLE_VALUE = -1;
|
||||||
STD_OUT_COLOR = Ports.green;
|
STD_OUT_COLOR = Ports.green;
|
||||||
STD_ERR_COLOR = Ports.grey50;
|
STD_ERR_COLOR = Ports.grey50;
|
||||||
JAVA_OUT_COLOR = Ports.blue;
|
JAVA_OUT_COLOR = Ports.blue;
|
||||||
JAVA_ERR_COLOR = Ports.red;
|
JAVA_ERR_COLOR = Ports.red;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
MAX_UART_DATA_LENGTH* = BDI.MAX_UART_DATA_LENGTH;
|
MAX_UART_DATA_LENGTH* = BDI.MAX_UART_DATA_LENGTH;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
PATH_SEPERATOR = "\";
|
PATH_SEPERATOR = "\";
|
||||||
CLASSPATH = "Usb\Rsrc\usbpdi.jar";
|
CLASSPATH = "Usb\Rsrc\usbpdi.jar";
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
StdReaderWriter = POINTER TO ABSTRACT RECORD (Services.Action)
|
StdReaderWriter = POINTER TO ABSTRACT RECORD (Services.Action)
|
||||||
stdIoText: TextModels.Model; stdIoTextPos: INTEGER;
|
stdIoText: TextModels.Model; stdIoTextPos: INTEGER;
|
||||||
time, endTime: LONGINT; period: INTEGER;
|
time, endTime: LONGINT; period: INTEGER;
|
||||||
@@ -36,25 +36,25 @@ MODULE UsbBDI;
|
|||||||
JvmReaderWriter = POINTER TO EXTENSIBLE RECORD (StdReaderWriter)
|
JvmReaderWriter = POINTER TO EXTENSIBLE RECORD (StdReaderWriter)
|
||||||
errText: TextModels.Model; stdIoWriter, stdErrWriter: TextModels.Writer;
|
errText: TextModels.Model; stdIoWriter, stdErrWriter: TextModels.Writer;
|
||||||
hJavaOut, hJavaErr: WinApi.HANDLE;
|
hJavaOut, hJavaErr: WinApi.HANDLE;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
||||||
VAR
|
VAR
|
||||||
bool: BDI.BOOL;
|
bool: BDI.BOOL;
|
||||||
Done-, deviceOpen, jvmCreated: BOOLEAN; (** previous operation successfully completed *)
|
Done-, deviceOpen, jvmCreated: BOOLEAN; (** previous operation successfully completed *)
|
||||||
readerWriter: JvmReaderWriter;
|
readerWriter: JvmReaderWriter;
|
||||||
|
|
||||||
(* ----------- Standard-IO / Java ReaderWriter --------------- *)
|
(* ----------- Standard-IO / Java ReaderWriter --------------- *)
|
||||||
PROCEDURE (task: StdReaderWriter) Clear, NEW, EXTENSIBLE;
|
PROCEDURE (task: StdReaderWriter) Clear, NEW, EXTENSIBLE;
|
||||||
BEGIN
|
BEGIN
|
||||||
task.stdIoText := NIL; task.stdIoTextPos := 0;
|
task.stdIoText := NIL; task.stdIoTextPos := 0;
|
||||||
task.hStdOut := ttPipeHandDisconnected; task.hStdErr := ttPipeHandDisconnected;
|
task.hStdOut := ttPipeHandDisconnected; task.hStdErr := ttPipeHandDisconnected;
|
||||||
task.time := 0; task.endTime := 0; task.period := 0;
|
task.time := 0; task.endTime := 0; task.period := 0;
|
||||||
task.connected := FALSE; task.running := FALSE;
|
task.connected := FALSE; task.running := FALSE;
|
||||||
task.prevChar := nul;
|
task.prevChar := nul;
|
||||||
END Clear;
|
END Clear;
|
||||||
|
|
||||||
PROCEDURE (task: StdReaderWriter) Stop, NEW, EXTENSIBLE;
|
PROCEDURE (task: StdReaderWriter) Stop, NEW, EXTENSIBLE;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
Services.RemoveAction(task); task.running := FALSE;
|
Services.RemoveAction(task); task.running := FALSE;
|
||||||
@@ -63,70 +63,70 @@ MODULE UsbBDI;
|
|||||||
done := WinApi.CloseHandle(task.hStdErr);
|
done := WinApi.CloseHandle(task.hStdErr);
|
||||||
END;
|
END;
|
||||||
task.Clear
|
task.Clear
|
||||||
END Stop;
|
END Stop;
|
||||||
|
|
||||||
PROCEDURE (task: StdReaderWriter) SetTime (startFromNow, period, timeOut: INTEGER), NEW;
|
PROCEDURE (task: StdReaderWriter) SetTime (startFromNow, period, timeOut: INTEGER), NEW;
|
||||||
BEGIN
|
BEGIN
|
||||||
task.time := Services.Ticks() + startFromNow;
|
task.time := Services.Ticks() + startFromNow;
|
||||||
IF timeOut <= 0 THEN timeOut := MAX(INTEGER) END;
|
IF timeOut <= 0 THEN timeOut := MAX(INTEGER) END;
|
||||||
task.endTime := task.time + LONG(timeOut) * Services.resolution DIV 1000;
|
task.endTime := task.time + LONG(timeOut) * Services.resolution DIV 1000;
|
||||||
task.period := period
|
task.period := period
|
||||||
END SetTime;
|
END SetTime;
|
||||||
|
|
||||||
PROCEDURE (task: StdReaderWriter) ConnectStdOutPipe (hStdOut: WinApi.HANDLE), NEW;
|
PROCEDURE (task: StdReaderWriter) ConnectStdOutPipe (hStdOut: WinApi.HANDLE), NEW;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF task.connected & (task.hStdOut # hStdOut) THEN done := WinApi.CloseHandle(task.hStdOut) END;
|
IF task.connected & (task.hStdOut # hStdOut) THEN done := WinApi.CloseHandle(task.hStdOut) END;
|
||||||
task.hStdOut := hStdOut; task.connected := TRUE
|
task.hStdOut := hStdOut; task.connected := TRUE
|
||||||
END ConnectStdOutPipe;
|
END ConnectStdOutPipe;
|
||||||
|
|
||||||
PROCEDURE (task: StdReaderWriter) ConnectStdErrPipe (hStdErr: WinApi.HANDLE), NEW;
|
PROCEDURE (task: StdReaderWriter) ConnectStdErrPipe (hStdErr: WinApi.HANDLE), NEW;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF task.connected & (task.hStdErr # hStdErr) THEN done := WinApi.CloseHandle(task.hStdErr) END;
|
IF task.connected & (task.hStdErr # hStdErr) THEN done := WinApi.CloseHandle(task.hStdErr) END;
|
||||||
task.hStdErr := hStdErr; task.connected := TRUE
|
task.hStdErr := hStdErr; task.connected := TRUE
|
||||||
END ConnectStdErrPipe;
|
END ConnectStdErrPipe;
|
||||||
|
|
||||||
PROCEDURE (task: StdReaderWriter) Start, NEW, ABSTRACT;
|
PROCEDURE (task: StdReaderWriter) Start, NEW, ABSTRACT;
|
||||||
|
|
||||||
PROCEDURE NewJvmReaderWriter ( ): JvmReaderWriter;
|
PROCEDURE NewJvmReaderWriter ( ): JvmReaderWriter;
|
||||||
VAR rec: JvmReaderWriter;
|
VAR rec: JvmReaderWriter;
|
||||||
BEGIN
|
BEGIN
|
||||||
NEW(rec); rec.Clear; RETURN rec
|
NEW(rec); rec.Clear; RETURN rec
|
||||||
END NewJvmReaderWriter;
|
END NewJvmReaderWriter;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) Clear, EXTENSIBLE;
|
PROCEDURE (rec: JvmReaderWriter) Clear, EXTENSIBLE;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
rec.Clear^;
|
rec.Clear^;
|
||||||
rec.errText := NIL; rec.stdIoWriter := NIL; rec.stdErrWriter := NIL;
|
rec.errText := NIL; rec.stdIoWriter := NIL; rec.stdErrWriter := NIL;
|
||||||
rec.hJavaOut := ttPipeHandDisconnected; rec.hJavaErr := ttPipeHandDisconnected;
|
rec.hJavaOut := ttPipeHandDisconnected; rec.hJavaErr := ttPipeHandDisconnected;
|
||||||
END Clear;
|
END Clear;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) Stop, EXTENSIBLE;
|
PROCEDURE (rec: JvmReaderWriter) Stop, EXTENSIBLE;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF rec.connected THEN
|
IF rec.connected THEN
|
||||||
rec.Stop^; done := WinApi.CloseHandle(rec.hJavaErr); done := WinApi.CloseHandle(rec.hJavaOut)
|
rec.Stop^; done := WinApi.CloseHandle(rec.hJavaErr); done := WinApi.CloseHandle(rec.hJavaOut)
|
||||||
END;
|
END;
|
||||||
rec.Clear
|
rec.Clear
|
||||||
END Stop;
|
END Stop;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) ConnectJavaOutPipe (hJavaOut: WinApi.HANDLE), NEW;
|
PROCEDURE (rec: JvmReaderWriter) ConnectJavaOutPipe (hJavaOut: WinApi.HANDLE), NEW;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF rec.connected & (rec.hJavaOut # hJavaOut) THEN done := WinApi.CloseHandle(rec.hJavaOut) END;
|
IF rec.connected & (rec.hJavaOut # hJavaOut) THEN done := WinApi.CloseHandle(rec.hJavaOut) END;
|
||||||
rec.hJavaOut := hJavaOut; rec.connected := TRUE
|
rec.hJavaOut := hJavaOut; rec.connected := TRUE
|
||||||
END ConnectJavaOutPipe;
|
END ConnectJavaOutPipe;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) ConnectJavaErrPipe (hJavaErr: WinApi.HANDLE), NEW;
|
PROCEDURE (rec: JvmReaderWriter) ConnectJavaErrPipe (hJavaErr: WinApi.HANDLE), NEW;
|
||||||
VAR done: WinApi.BOOL;
|
VAR done: WinApi.BOOL;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF rec.connected & (rec.hJavaErr # hJavaErr) THEN done := WinApi.CloseHandle(rec.hJavaErr) END;
|
IF rec.connected & (rec.hJavaErr # hJavaErr) THEN done := WinApi.CloseHandle(rec.hJavaErr) END;
|
||||||
rec.hJavaErr := hJavaErr; rec.connected := TRUE
|
rec.hJavaErr := hJavaErr; rec.connected := TRUE
|
||||||
END ConnectJavaErrPipe;
|
END ConnectJavaErrPipe;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) Start;
|
PROCEDURE (rec: JvmReaderWriter) Start;
|
||||||
VAR handle, stdOutHandle, stdErrHandle: WinApi.HANDLE;
|
VAR handle, stdOutHandle, stdErrHandle: WinApi.HANDLE;
|
||||||
BEGIN
|
BEGIN
|
||||||
IF rec.running THEN rec.Stop END;
|
IF rec.running THEN rec.Stop END;
|
||||||
@@ -166,9 +166,9 @@ MODULE UsbBDI;
|
|||||||
END;
|
END;
|
||||||
|
|
||||||
rec.running := TRUE; Services.DoLater(rec, rec.time)
|
rec.running := TRUE; Services.DoLater(rec, rec.time)
|
||||||
END Start;
|
END Start;
|
||||||
|
|
||||||
PROCEDURE (rec: JvmReaderWriter) Do;
|
PROCEDURE (rec: JvmReaderWriter) Do;
|
||||||
VAR
|
VAR
|
||||||
outModel: TextModels.Model;
|
outModel: TextModels.Model;
|
||||||
n, ioDone, errDone, nofBytesRead, ioBytesAvail, errBytesAvail, exitCode: INTEGER;
|
n, ioDone, errDone, nofBytesRead, ioBytesAvail, errBytesAvail, exitCode: INTEGER;
|
||||||
@@ -259,11 +259,11 @@ MODULE UsbBDI;
|
|||||||
END;
|
END;
|
||||||
INC( rec.time, rec.period ); Services.DoLater(rec, rec.time )
|
INC( rec.time, rec.period ); Services.DoLater(rec, rec.time )
|
||||||
END;
|
END;
|
||||||
END Do;
|
END Do;
|
||||||
|
|
||||||
(* ----------- JVM --------------- *)
|
(* ----------- JVM --------------- *)
|
||||||
|
|
||||||
PROCEDURE CreateJVM (classpath: ARRAY OF SHORTCHAR);
|
PROCEDURE CreateJVM (classpath: ARRAY OF SHORTCHAR);
|
||||||
VAR string: WinApi.PtrSTR;
|
VAR string: WinApi.PtrSTR;
|
||||||
BEGIN
|
BEGIN
|
||||||
string := ComTools.NewSString(classpath);
|
string := ComTools.NewSString(classpath);
|
||||||
@@ -283,9 +283,9 @@ MODULE UsbBDI;
|
|||||||
readerWriter.Start();
|
readerWriter.Start();
|
||||||
END;
|
END;
|
||||||
ComTools.FreeSString(string);
|
ComTools.FreeSString(string);
|
||||||
END CreateJVM;
|
END CreateJVM;
|
||||||
|
|
||||||
PROCEDURE DestroyJVM ;
|
PROCEDURE DestroyJVM ;
|
||||||
BEGIN
|
BEGIN
|
||||||
bool := BDI.destroyJVM();
|
bool := BDI.destroyJVM();
|
||||||
IF bool = FALSE_ THEN
|
IF bool = FALSE_ THEN
|
||||||
@@ -296,57 +296,68 @@ MODULE UsbBDI;
|
|||||||
Log.String("JVM destroyed"); Log.Ln;
|
Log.String("JVM destroyed"); Log.Ln;
|
||||||
END;
|
END;
|
||||||
jvmCreated := FALSE;
|
jvmCreated := FALSE;
|
||||||
END DestroyJVM;
|
END DestroyJVM;
|
||||||
|
|
||||||
PROCEDURE CheckForExceptions * (): BOOLEAN;
|
PROCEDURE CheckForExceptions * (): BOOLEAN;
|
||||||
BEGIN
|
BEGIN
|
||||||
RETURN (BDI.checkForExceptions() # FALSE_)
|
RETURN (BDI.checkForExceptions() # FALSE_)
|
||||||
END CheckForExceptions;
|
END CheckForExceptions;
|
||||||
|
|
||||||
(* ----------- USB --------------- *)
|
(* ----------- USB --------------- *)
|
||||||
|
|
||||||
PROCEDURE USB_Device_open ;
|
PROCEDURE USB_Device_open ;
|
||||||
BEGIN
|
BEGIN
|
||||||
BDI.USB_Device_open;
|
BDI.USB_Device_open;
|
||||||
Done := ~CheckForExceptions();
|
Done := ~CheckForExceptions();
|
||||||
IF Done THEN
|
IF Done THEN
|
||||||
deviceOpen := TRUE;
|
deviceOpen := TRUE;
|
||||||
END
|
END
|
||||||
END USB_Device_open;
|
END USB_Device_open;
|
||||||
|
|
||||||
PROCEDURE USB_Device_close ;
|
PROCEDURE USB_Device_close ;
|
||||||
BEGIN
|
BEGIN
|
||||||
BDI.USB_Device_close;
|
BDI.USB_Device_close;
|
||||||
Done := ~CheckForExceptions();
|
Done := ~CheckForExceptions();
|
||||||
deviceOpen := FALSE;
|
deviceOpen := FALSE;
|
||||||
END USB_Device_close;
|
END USB_Device_close;
|
||||||
|
|
||||||
PROCEDURE USB_Device_reset * ;
|
PROCEDURE USB_Device_reset * ;
|
||||||
BEGIN
|
BEGIN
|
||||||
BDI.USB_Device_reset;
|
BDI.USB_Device_reset;
|
||||||
Done := ~CheckForExceptions();
|
Done := ~CheckForExceptions();
|
||||||
deviceOpen := FALSE;
|
deviceOpen := FALSE;
|
||||||
END USB_Device_reset;
|
END USB_Device_reset;
|
||||||
|
|
||||||
|
PROCEDURE USB_Device_getMaxPacketSize * (): INTEGER;
|
||||||
|
VAR val: INTEGER;
|
||||||
|
BEGIN
|
||||||
|
IF deviceOpen THEN
|
||||||
|
Done := TRUE;
|
||||||
|
RETURN BDI.USB_Device_getMaxPacketSize();
|
||||||
|
ELSE
|
||||||
|
Done := FALSE;
|
||||||
|
RETURN - 1
|
||||||
|
END
|
||||||
|
END USB_Device_getMaxPacketSize;
|
||||||
|
|
||||||
(* --------- UART0 ----------------- *)
|
(* --------- UART0 ----------------- *)
|
||||||
|
|
||||||
PROCEDURE UART0_read * (VAR data: ARRAY OF SHORTCHAR; VAR length: INTEGER): BOOLEAN;
|
PROCEDURE UART0_read * (VAR data: ARRAY OF SHORTCHAR; VAR length: INTEGER): BOOLEAN;
|
||||||
BEGIN
|
BEGIN
|
||||||
length := BDI.UART0_read(data);
|
length := BDI.UART0_read(data);
|
||||||
RETURN length # FALSE_;
|
RETURN length # FALSE_;
|
||||||
END UART0_read;
|
END UART0_read;
|
||||||
|
|
||||||
PROCEDURE UART0_write * (VAR data: ARRAY OF SHORTCHAR; length: INTEGER): BOOLEAN;
|
PROCEDURE UART0_write * (VAR data: ARRAY OF SHORTCHAR; length: INTEGER): BOOLEAN;
|
||||||
VAR
|
VAR
|
||||||
result: INTEGER;
|
result: INTEGER;
|
||||||
BEGIN
|
BEGIN
|
||||||
RETURN BDI.UART0_write(SYS.ADR(data[0]), length) # FALSE_;
|
RETURN BDI.UART0_write(SYS.ADR(data[0]), length) # FALSE_;
|
||||||
END UART0_write;
|
END UART0_write;
|
||||||
|
|
||||||
(* -------------- Helper Functions ------------------*)
|
(* -------------- Helper Functions ------------------*)
|
||||||
|
|
||||||
PROCEDURE GetUserStartUpPath (VAR startupPath: ARRAY OF SHORTCHAR);
|
PROCEDURE GetUserStartUpPath (VAR startupPath: ARRAY OF SHORTCHAR);
|
||||||
VAR
|
VAR
|
||||||
userStartUpLocator: Files.Locator; userStartUpHostLoc: HostFiles.Locator;
|
userStartUpLocator: Files.Locator; userStartUpHostLoc: HostFiles.Locator;
|
||||||
startupPathChar: ARRAY PATH_LENGTH OF CHAR;
|
startupPathChar: ARRAY PATH_LENGTH OF CHAR;
|
||||||
@@ -357,10 +368,10 @@ MODULE UsbBDI;
|
|||||||
FOR i := 0 TO LEN(startupPathChar) - 1 DO
|
FOR i := 0 TO LEN(startupPathChar) - 1 DO
|
||||||
startupPath[i] := SYS.VAL(SHORTCHAR, startupPathChar[i]);
|
startupPath[i] := SYS.VAL(SHORTCHAR, startupPathChar[i]);
|
||||||
END
|
END
|
||||||
END GetUserStartUpPath;
|
END GetUserStartUpPath;
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE ConnectDevice * ;
|
PROCEDURE ConnectDevice * ;
|
||||||
VAR
|
VAR
|
||||||
startupPath: ARRAY PATH_LENGTH OF SHORTCHAR;
|
startupPath: ARRAY PATH_LENGTH OF SHORTCHAR;
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -377,16 +388,17 @@ MODULE UsbBDI;
|
|||||||
END;
|
END;
|
||||||
BDI.USB_Device_open;
|
BDI.USB_Device_open;
|
||||||
IF ~Done THEN HALT(78) END;
|
IF ~Done THEN HALT(78) END;
|
||||||
|
deviceOpen := TRUE;
|
||||||
END
|
END
|
||||||
END ConnectDevice;
|
END ConnectDevice;
|
||||||
|
|
||||||
PROCEDURE DeviceOpen * (): BOOLEAN ;
|
PROCEDURE DeviceOpen * (): BOOLEAN ;
|
||||||
BEGIN
|
BEGIN
|
||||||
RETURN deviceOpen
|
RETURN deviceOpen
|
||||||
END DeviceOpen;
|
END DeviceOpen;
|
||||||
|
|
||||||
(* Close and reopen the device *)
|
(* Close and reopen the device *)
|
||||||
PROCEDURE ReopenDevice * ;
|
PROCEDURE ReopenDevice * ;
|
||||||
BEGIN
|
BEGIN
|
||||||
USB_Device_close;
|
USB_Device_close;
|
||||||
USB_Device_open;
|
USB_Device_open;
|
||||||
@@ -395,7 +407,7 @@ MODULE UsbBDI;
|
|||||||
ELSE
|
ELSE
|
||||||
Log.String("Error while opening Device"); Log.Ln;
|
Log.String("Error while opening Device"); Log.Ln;
|
||||||
END
|
END
|
||||||
END ReopenDevice;
|
END ReopenDevice;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
deviceOpen := FALSE;
|
deviceOpen := FALSE;
|
||||||
|
|||||||
@@ -1,175 +1,178 @@
|
|||||||
MODULE UsbBDIDll ["BDI.dll"];
|
MODULE UsbBDIDll ["BDI.dll"];
|
||||||
IMPORT SYSTEM;
|
IMPORT SYSTEM;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
MAX_NOF_LONGS_FILL* = 84;
|
MAX_NOF_LONGS_FILL* = 84;
|
||||||
MAX_UART_DATA_LENGTH* = 256;
|
MAX_UART_DATA_LENGTH* = 256;
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
|
PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
|
||||||
BOOL* = INTEGER;
|
BOOL* = INTEGER;
|
||||||
|
|
||||||
(* -------JVM--------- *)
|
(* -------JVM--------- *)
|
||||||
|
|
||||||
PROCEDURE getErrPipeHandle* (): INTEGER;
|
PROCEDURE getErrPipeHandle* (): INTEGER;
|
||||||
(*END getErrPipeHandle; *)
|
(*END getErrPipeHandle; *)
|
||||||
|
|
||||||
PROCEDURE getOutPipeHandle* (): INTEGER;
|
PROCEDURE getOutPipeHandle* (): INTEGER;
|
||||||
(*END getOutPipeHandle; *)
|
(*END getOutPipeHandle; *)
|
||||||
|
|
||||||
PROCEDURE createJVM* (classpath: PtrSTR): BOOL;
|
PROCEDURE createJVM* (classpath: PtrSTR): BOOL;
|
||||||
(*END createJVM; *)
|
(*END createJVM; *)
|
||||||
|
|
||||||
PROCEDURE destroyJVM* (): INTEGER;
|
PROCEDURE destroyJVM* (): INTEGER;
|
||||||
(*END destroyJVM; *)
|
(*END destroyJVM; *)
|
||||||
|
|
||||||
PROCEDURE checkForExceptions* (): BOOL;
|
PROCEDURE checkForExceptions* (): BOOL;
|
||||||
(*END checkForExceptions; *)
|
(*END checkForExceptions; *)
|
||||||
|
|
||||||
(* -------USB--------- *)
|
(* -------USB--------- *)
|
||||||
|
|
||||||
PROCEDURE USB_Device_open*;
|
PROCEDURE USB_Device_open*;
|
||||||
(*END USB_Device_open; *)
|
(*END USB_Device_open; *)
|
||||||
|
|
||||||
PROCEDURE USB_Device_close*;
|
PROCEDURE USB_Device_close*;
|
||||||
(*END USB_Device_close; *)
|
(*END USB_Device_close; *)
|
||||||
|
|
||||||
PROCEDURE USB_Device_reset*;
|
PROCEDURE USB_Device_reset*;
|
||||||
(*END USB_Device_reset; *)
|
(*END USB_Device_reset; *)
|
||||||
|
|
||||||
|
PROCEDURE USB_Device_getMaxPacketSize* (): INTEGER;
|
||||||
|
(*END USB_Device_reset; *)
|
||||||
|
|
||||||
(* -------555--------- *)
|
(* -------555--------- *)
|
||||||
|
|
||||||
PROCEDURE BDI555_go*;
|
PROCEDURE BDI555_go*;
|
||||||
(*END BDI555_go; *)
|
(*END BDI555_go; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_break_*;
|
PROCEDURE BDI555_break_*;
|
||||||
(*END BDI555_break_; *)
|
(*END BDI555_break_; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_reset_target*;
|
PROCEDURE BDI555_reset_target*;
|
||||||
(*END BDI555_reset_target; *)
|
(*END BDI555_reset_target; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_isFreezeAsserted* (): BOOL;
|
PROCEDURE BDI555_isFreezeAsserted* (): BOOL;
|
||||||
(*END BDI555_isFreezeAsserted; *)
|
(*END BDI555_isFreezeAsserted; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_startFastDownload* (adr: INTEGER);
|
PROCEDURE BDI555_startFastDownload* (adr: INTEGER);
|
||||||
(*END BDI555_startFastDownload; *)
|
(*END BDI555_startFastDownload; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_fastDownload* (downloadData: (* ARRAY OF *) INTEGER; dataLength: INTEGER);
|
PROCEDURE BDI555_fastDownload* (downloadData: (* ARRAY OF *) INTEGER; dataLength: INTEGER);
|
||||||
(*END BDI555_fastDownload; *)
|
(*END BDI555_fastDownload; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_stopFastDownload*;
|
PROCEDURE BDI555_stopFastDownload*;
|
||||||
(*END BDI555_stopFastDownload; *)
|
(*END BDI555_stopFastDownload; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeMem* (addr, value, size: INTEGER);
|
PROCEDURE BDI555_writeMem* (addr, value, size: INTEGER);
|
||||||
(*END BDI555_writeMem; *)
|
(*END BDI555_writeMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readMem* (addr, size: INTEGER): INTEGER;
|
PROCEDURE BDI555_readMem* (addr, size: INTEGER): INTEGER;
|
||||||
(*END BDI555_readMem; *)
|
(*END BDI555_readMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeMemSeq* (value, size: INTEGER);
|
PROCEDURE BDI555_writeMemSeq* (value, size: INTEGER);
|
||||||
(*END BDI555_writeMemSeq; *)
|
(*END BDI555_writeMemSeq; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readMemSeq* (size: INTEGER): INTEGER;
|
PROCEDURE BDI555_readMemSeq* (size: INTEGER): INTEGER;
|
||||||
(*END BDI555_readMemSeq; *)
|
(*END BDI555_readMemSeq; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readGPR* (gpr: INTEGER): INTEGER;
|
PROCEDURE BDI555_readGPR* (gpr: INTEGER): INTEGER;
|
||||||
(*END BDI555_readGPR; *)
|
(*END BDI555_readGPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeGPR* (gpr, value: INTEGER);
|
PROCEDURE BDI555_writeGPR* (gpr, value: INTEGER);
|
||||||
(*END BDI555_writeGPR; *)
|
(*END BDI555_writeGPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readSPR* (spr: INTEGER): INTEGER;
|
PROCEDURE BDI555_readSPR* (spr: INTEGER): INTEGER;
|
||||||
(*END BDI555_readSPR; *)
|
(*END BDI555_readSPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeSPR* (spr, value: INTEGER);
|
PROCEDURE BDI555_writeSPR* (spr, value: INTEGER);
|
||||||
(*END BDI555_writeSPR; *)
|
(*END BDI555_writeSPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readMSR* (): INTEGER;
|
PROCEDURE BDI555_readMSR* (): INTEGER;
|
||||||
(*END BDI555_readMSR; *)
|
(*END BDI555_readMSR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeMSR* (value: INTEGER);
|
PROCEDURE BDI555_writeMSR* (value: INTEGER);
|
||||||
(*END BDI555_writeMSR; *)
|
(*END BDI555_writeMSR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readFPR* (fpr, tmpMemAddr: INTEGER): LONGINT;
|
PROCEDURE BDI555_readFPR* (fpr, tmpMemAddr: INTEGER): LONGINT;
|
||||||
(*END BDI555_readFPR; *)
|
(*END BDI555_readFPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeFPR* (fpr, tmpMemAddr: INTEGER; value: LONGINT);
|
PROCEDURE BDI555_writeFPR* (fpr, tmpMemAddr: INTEGER; value: LONGINT);
|
||||||
(*END BDI555_writeFPR; *)
|
(*END BDI555_writeFPR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readCR* (): INTEGER;
|
PROCEDURE BDI555_readCR* (): INTEGER;
|
||||||
(*END BDI555_readCR; *)
|
(*END BDI555_readCR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeCR* (value: INTEGER);
|
PROCEDURE BDI555_writeCR* (value: INTEGER);
|
||||||
(*END BDI555_writeCR; *)
|
(*END BDI555_writeCR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_readFPSCR* (): INTEGER;
|
PROCEDURE BDI555_readFPSCR* (): INTEGER;
|
||||||
(*END BDI555_readFPSCR; *)
|
(*END BDI555_readFPSCR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_writeFPSCR* (value: INTEGER);
|
PROCEDURE BDI555_writeFPSCR* (value: INTEGER);
|
||||||
(*END BDI555_writeFPSCR; *)
|
(*END BDI555_writeFPSCR; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_isTargetInDebugMode* (): BOOL;
|
PROCEDURE BDI555_isTargetInDebugMode* (): BOOL;
|
||||||
(*END BDI555_isTargetInDebugMode; *)
|
(*END BDI555_isTargetInDebugMode; *)
|
||||||
|
|
||||||
PROCEDURE BDI555_setGpr31* (gpr31: INTEGER);
|
PROCEDURE BDI555_setGpr31* (gpr31: INTEGER);
|
||||||
(*END BDI555_setGpr31; *)
|
(*END BDI555_setGpr31; *)
|
||||||
|
|
||||||
(* -------332--------- *)
|
(* -------332--------- *)
|
||||||
|
|
||||||
PROCEDURE BDI332_nopsToLegalCmd*;
|
PROCEDURE BDI332_nopsToLegalCmd*;
|
||||||
(*END BDI332_nopsToLegalCmd; *)
|
(*END BDI332_nopsToLegalCmd; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_go*;
|
PROCEDURE BDI332_go*;
|
||||||
(*END BDI332_go; *)
|
(*END BDI332_go; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_break_*;
|
PROCEDURE BDI332_break_*;
|
||||||
(*END BDI332_break_; *)
|
(*END BDI332_break_; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_reset_target*;
|
PROCEDURE BDI332_reset_target*;
|
||||||
(*END BDI332_reset_target; *)
|
(*END BDI332_reset_target; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_reset_peripherals*;
|
PROCEDURE BDI332_reset_peripherals*;
|
||||||
(*END BDI332_reset_peripherals; *)
|
(*END BDI332_reset_peripherals; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_isFreezeAsserted* (): BOOL;
|
PROCEDURE BDI332_isFreezeAsserted* (): BOOL;
|
||||||
(*END BDI332_isFreezeAsserted; *)
|
(*END BDI332_isFreezeAsserted; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_fillMem* (downloadData: (* ARRAY OF *) INTEGER; dataLength: INTEGER);
|
PROCEDURE BDI332_fillMem* (downloadData: (* ARRAY OF *) INTEGER; dataLength: INTEGER);
|
||||||
(*END BDI332_fillMem; *)
|
(*END BDI332_fillMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_dumpMem* (nofData: INTEGER; VAR result: ARRAY OF INTEGER): INTEGER;
|
PROCEDURE BDI332_dumpMem* (nofData: INTEGER; VAR result: ARRAY OF INTEGER): INTEGER;
|
||||||
(*
|
(*
|
||||||
PROCEDURE BDI332_dumpMem* (nofData: INTEGER; VAR result: ARRAY [untagged] MAX_NOF_LONGS_FILL OF INTEGER): INTEGER;
|
PROCEDURE BDI332_dumpMem* (nofData: INTEGER; VAR result: ARRAY [untagged] MAX_NOF_LONGS_FILL OF INTEGER): INTEGER;
|
||||||
*)
|
*)
|
||||||
(*END BDI332_dumpMem; *)
|
(*END BDI332_dumpMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_writeMem* (addr, value, size: INTEGER);
|
PROCEDURE BDI332_writeMem* (addr, value, size: INTEGER);
|
||||||
(*END BDI332_writeMem; *)
|
(*END BDI332_writeMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_readMem* (addr, size: INTEGER): INTEGER;
|
PROCEDURE BDI332_readMem* (addr, size: INTEGER): INTEGER;
|
||||||
(*END BDI332_readMem; *)
|
(*END BDI332_readMem; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_readUserReg* (reg: INTEGER): INTEGER;
|
PROCEDURE BDI332_readUserReg* (reg: INTEGER): INTEGER;
|
||||||
(*END BDI332_readUserReg; *)
|
(*END BDI332_readUserReg; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_writeUserReg* (reg, value: INTEGER);
|
PROCEDURE BDI332_writeUserReg* (reg, value: INTEGER);
|
||||||
(*END BDI332_writeUserReg; *)
|
(*END BDI332_writeUserReg; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_readSysReg* (reg: INTEGER): INTEGER;
|
PROCEDURE BDI332_readSysReg* (reg: INTEGER): INTEGER;
|
||||||
(*END BDI332_readSysReg; *)
|
(*END BDI332_readSysReg; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_writeSysReg* (reg, value: INTEGER);
|
PROCEDURE BDI332_writeSysReg* (reg, value: INTEGER);
|
||||||
(*END BDI332_writeSysReg; *)
|
(*END BDI332_writeSysReg; *)
|
||||||
|
|
||||||
PROCEDURE BDI332_isTargetInDebugMode* (): BOOL;
|
PROCEDURE BDI332_isTargetInDebugMode* (): BOOL;
|
||||||
(*END BDI332_isTargetInDebugMode; *)
|
(*END BDI332_isTargetInDebugMode; *)
|
||||||
|
|
||||||
(* ------ UART0 ------ *)
|
(* ------ UART0 ------ *)
|
||||||
|
|
||||||
PROCEDURE UART0_read* (VAR data: ARRAY [untagged] OF SHORTCHAR): INTEGER;
|
PROCEDURE UART0_read* (VAR data: ARRAY [untagged] OF SHORTCHAR): INTEGER;
|
||||||
(*END UART0_read; *)
|
(*END UART0_read; *)
|
||||||
|
|
||||||
PROCEDURE UART0_write* (data: (* ARRAY OF SHORTCHAR *) INTEGER; length: INTEGER): BOOL;
|
PROCEDURE UART0_write* (data: (* ARRAY OF SHORTCHAR *) INTEGER; length: INTEGER): BOOL;
|
||||||
(*END UART0_write; *)
|
(*END UART0_write; *)
|
||||||
|
|
||||||
END UsbBDIDll.
|
END UsbBDIDll.
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user