TI E2E™ 英文论坛海量技术问答的中文版全新上线,可点击相关论坛查看,或在站内搜索 “参考译文” 获取。

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5529 软件支持包里的 “Java_HID_Demo” 无法运行

大家好,

我在用 F5529 LaunchPad 为例,学习 USB MCU 的使用。

我安装了 “MSP430Ware_3_40_00_19” 中的 “usblib430” ,

因为 USB HID 程序都需要一个上位机发送命令,而这个Java HID程序我却一直无法运行。

路径如下:

C:\ti\msp\MSP430Ware_3_40_00_19\usblib430\Host_USB_Software\Java_HID_Demo\Windows\

我曾尝试在安装了 jdk11、jdk8,的Mac和Win10下尝试,运行结果相同,什么都没有打开。

如果没插 F5529,会提示未连接,显示如下,点击“确定”后就什么都没有了。

如果插上F5529,程序应该检测到了板子,没有弹出下面的未连接提示,但仍然什么窗口都没有打开。

这是系统需求,我使用的是最新的430Ware,USB部分一直未更新吗?请求帮助。

  • 这个软件是需要自己编译生成的,步骤如下:

    1. 安装JAVA JDK

    2. 安装Cygwin

    3.解压下载的USB开发包,你可以在安装目录的..\MSP430USBDevelopersPackage_4_00_02\Host_USB_Software下找到Java_hid_demo文件夹,所有的HID DEMO app 代码都在该文件夹。

    4. 更改目录下的makefile文件如下,其中红色部分是你安装JAVA,JDK的路径。

    ifeq (${JDK64},1)
    CC=x86_64-w64-mingw32-gcc-4.7.3
    CXX=x86_64-w64-mingw32-g++
    CCFLAGS=-m64
    JDK="/cygdrive/c/jdk64"
    else
    CC=i686-pc-mingw32-gcc
    CXX=i686-pc-mingw32-g++
    CCFLAGS=-m32
    JDK="/cygdrive/c/jdk32"
    endif

    5. 打开Cygwin,编译,生成应用文件。注意Cygwin默认安装是不安装make命令的,安装时要选上MAKE的开发包。

    您可以先尝试一下,看是否可以成功
  • 感谢Susan,我已尝试运行到最后一步,如下是我的 Makefile 文件,我使用命令“make JDK64=1”进行make操作。

    下图是在 cygwin 运行 make JDK64=1 后的运行结果。

    问题是我只能找到生成的两个.o文件,并没有见到 .exe 可执行文件?见最后两张图,求助。

    Makefile - 副本.txt
    ###########################################
    #
    #       Makefile for HidDemo Application
    #   To build for a 64 bit jdk and 64 bit machine
    #   make JDK64=1
    #
    ###########################################
    
    ifeq (${JDK64},1)
    	CC=x86_64-w64-mingw32-gcc-6.4.0
    	CXX=x86_64-w64-mingw32-g++
    	CCFLAGS=-m64
    	JDK="C:/Program Files/Java/jdk1.8.0_221"
    else
    	CC=i686-pc-mingw32-gcc
    	CXX=i686-pc-mingw32-g++
    	CCFLAGS=-m32
    	JDK="/cygdrive/c/jdk32"
    endif
    
    JNICFLAGS=-c -I${JDK}/include -I${JDK}/include/win32 -std=gnu99 -D__int64="long long"
    
    BUILD_DIR=./build
    LIB_DIR=./lib
    JNI_SRC=com/ti/msp430/usb/hiddemo/management
    HIDAPI_ROOT=jni/hidapi
    HIDAPI_DIR=jni/hidapi/hidapi
    WINOBJS=${HIDAPI_ROOT}windows/hid.c
    JNILDFLAGS=-Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at
    WINLIBS=-lsetupapi
    JNISRC=com_ti_msp430_usb_hiddemo_management_HidCommunicationManager.c
    JNIOBJS=com_ti_msp430_usb_hiddemo_management_HidCommunicationManager.o
    
    
    all: management javah jni gui jar
    
    management:
    	${JDK}/bin/javac com/ti/msp430/usb/hiddemo/management/*.java
    
    
    javah: management
    	${JDK}/bin/javah -d ${JNI_SRC} -jni com.ti.msp430.usb.hiddemo.management.HidCommunicationManager
    
    gui:
    	${JDK}/bin/javac com/ti/msp430/usb/hiddemo/*.java
    
    jni: init
    	${CC} ${CCFLAGS} -I${HIDAPI_DIR} -c ${HIDAPI_ROOT}/windows/hid.c -o ${BUILD_DIR}/hid.o
    	${CC} ${JNICFLAGS} -I${HIDAPI_DIR} -I${JNI_SRC} jni/${JNISRC} -o ${BUILD_DIR}/${JNIOBJS}
    	${CC} ${BUILD_DIR}/${JNIOBJS} ${BUILD_DIR}/hid.o ${WINLIBS} -o ${LIB_DIR}/HidCommunicationManager.dll ${JNILDFLAGS} -shared -static-libgcc
    
    init:
    	mkdir -p build
    	mkdir -p $(LIB_DIR)
    
    jar:
    	${JDK}/bin/jar cmf mainClass HidDemo.jar com icons lib jni
    ifeq (${JDK64},1)
    	cp lib//HidCommunicationManager.dll HidCommunicationManager64.dll
    else
    	cp lib//HidCommunicationManager.dll .
    endif
    
    
    clean:
    	rm -rf ${BUILD_DIR}
    	rm -rf ${LIB_DIR}
    	rm -f com/ti/msp430/usb/hiddemo/management/*.class
    	rm -f com/ti/msp430/usb/hiddemo/management/*.h
    

  • 或者,你所给我的步骤 1 - 5 方法,有没有原始英文 Issue 网页。我找到一个中文的:

    https://e2echina.ti.com/question_answer/microcontrollers/msp430/f/55/p/16629/57582

  • 您可以尝试看一下

    fiona.dmcs.pl/.../Examples_Guide_MSP430_USB.pdf

    2.4.2 Host Software for HID-Datapipe Interfaces: the Java HID Demo App