AnsweredAssumed Answered

Would like to access all USBDM functionality from Java app

Question asked by David Armstrong on Mar 13, 2013
Latest reply on Apr 7, 2013 by pgo

Recently I went through the process of building the USBDM software from source.  (That was another long question-and-answer session to get it all worked out.) The main purpose of that exercise was to create the UsbdmJniWrapper.dll file. I had thought that this would provide access via a Java app to all of the USBDM functionality.  However this does not seem to be the case.  To be fair, the documentation does state "It allows java code to access basic functions.", and this can be taken to mean that beyond 'basic', there is no support.  The sample Java program lists only these native methods:

 

   private static native int init();

   private static native int exit();

   private static native int findDevices(int[] deviceCount);

   private static native int releaseDevices();

   private static native int openBDM(int deviceNum);

   private static native int closeBDM();

   private static native int getBDMDescription(char[] description);

   private static native int getBDMSerialNumber(char[] serialNumber);

   private static native int getBDMFirwareVersion(BdmInformation bdmInfo);

   private static native String getErrorString( int errorNum);

 

   private static native int getUsbdmPath(char[] serialNumber);

 

I'm not sure about that last one, as it is not listed in the header file for the C code that generates this DLL.

 

The point is though that I'd like to be able to actually access the target MCU via USBDM to do things like read/write registers/memory locations, etc. The only hint that this might be possible is the loading of library code in the sample Java program:

 

   static {

      System.loadLibrary("libusb-1.0");

      System.loadLibrary("usbdm.4");

      System.loadLibrary("UsbdmJniWrapper");

   }

 

Maybe I'm missing something, but does anyone know if there is a way to access all of the USBDM calls from Java with the currently provided code?  Or am I going to have to write C code to expand the 'UsbdmJniWrapper' library?

 

 

Outcomes