diff --git a/JNIdll/BDI.def b/JNIdll/BDI.def index c9524f6..1807a89 100644 --- a/JNIdll/BDI.def +++ b/JNIdll/BDI.def @@ -46,7 +46,7 @@ EXPORTS BDI555_startFastDownload = _Z24BDI555_startFastDownloadi @45 BDI332_isTargetInDebugMode = _Z26BDI332_isTargetInDebugModev @46 BDI555_isTargetInDebugMode = _Z26BDI555_isTargetInDebugModev @47 - BDI332_go = _Z9BDI332_gov @48 - BDI555_go = _Z9BDI555_gov @49 - createJVM = _Z9createJVMPc @50 - \ No newline at end of file + USB_Device_getMaxPacketSize = _Z27USB_Device_getMaxPacketSizev @48 + BDI332_go = _Z9BDI332_gov @49 + BDI555_go = _Z9BDI555_gov @50 + createJVM = _Z9createJVMPc @51 diff --git a/JNIdll/BDI.dll b/JNIdll/BDI.dll index 1ad07a8..16e1c18 100644 Binary files a/JNIdll/BDI.dll and b/JNIdll/BDI.dll differ diff --git a/JNIdll/BDI_dll.cpp b/JNIdll/BDI_dll.cpp index 8f041f8..f911df2 100644 --- a/JNIdll/BDI_dll.cpp +++ b/JNIdll/BDI_dll.cpp @@ -12,8 +12,8 @@ // Classes #define USB_Device_Class "ch/ntb/mcdp/usb/USBDevice" -#define BDI555_Class "ch/ntb/mcdp/bdi/MPC555" -#define BDI332_Class "ch/ntb/mcdp/bdi/MC68332" +#define BDI555_Class "ch/ntb/mcdp/bdi/blackbox/MPC555" +#define BDI332_Class "ch/ntb/mcdp/bdi/blackbox/MC68332" #define Redirect_Class "ch/ntb/mcdp/utils/Redirect" #define Uart0_Class "ch/ntb/mcdp/uart/blackbox/Uart0" @@ -35,7 +35,8 @@ int jvm_created = FALSE, jvm_classPtrs_done = FALSE, \ // Java classes jclass cls_USB_Device, cls_BDI555, cls_BDI332, cls_Redirect, cls_Uart0; // USB_Device -jmethodID mid_USB_Dev_open, mid_USB_Dev_close, mid_USB_Dev_reset; +jmethodID mid_USB_Dev_open, mid_USB_Dev_close, mid_USB_Dev_reset, \ +mid_USB_Dev_getMaxPacketSize; // BDI555 jmethodID mid_BDI555_break_, mid_BDI555_go, mid_BDI555_reset_target, \ mid_BDI555_isFreezeAsserted, mid_BDI555_startFastDownload, mid_BDI555_fastDownload, \ @@ -269,6 +270,11 @@ EXPORT int createJVM(char *classpath) fprintf_flush(stderr, "Can't find USB_Device.reset\n"); return FALSE; } + mid_USB_Dev_getMaxPacketSize = env->GetStaticMethodID(cls_USB_Device, "getMaxPacketSize", "()I"); + if (mid_USB_Dev_getMaxPacketSize == 0) { + fprintf_flush(stderr, "Can't find USB_Device.getMaxPacketSize\n"); + return FALSE; + } // BDI555 mid_BDI555_break_ = env->GetStaticMethodID(cls_BDI555, "break_", "()V"); @@ -534,6 +540,11 @@ EXPORT void USB_Device_reset() env->CallStaticVoidMethod(cls_USB_Device, mid_USB_Dev_reset); } +EXPORT int USB_Device_getMaxPacketSize() +{ + return env->CallStaticIntMethod(cls_USB_Device, mid_USB_Dev_getMaxPacketSize); +} + /* BDI 555 methods * * For documentation see the java doc.