CSKY CVM jni环境搭建

来源:互联网 发布:敲诈淘宝卖家减肥药 编辑:程序博客网 时间:2024/06/07 11:51

1、编译CVM

2、在cvm/cdc/src/share/cdc/demo/cdc/HelloWorld.java中,

package cdc;public class HelloWorld {+    private static native void testprintf();    public static void main(String args[]) {System.out.println("Hello world!!!!!!!!!!.");+testprintf();    }+    static {+        System.loadLibrary("testprintf");+    }}

3、生成.class

    $ javac HelloWorld.java

4、生成头文件:

    javah -jni cdc/HelloWorld

5、动态库:

    $ testprintf.c

#include <jni.h>#include "cdc_HelloWorld.h"#include <stdio.h>void func(void){volatile long long num = 0x1122334455667788;printf("%llx\n", num);return;}JNIEXPORT void JNICALL Java_cdc_HelloWorld_testprintf (JNIEnv *env, jobject obj){volatile long long num1 = 0x1122334455667788;volatile double num2 = 0.123456789;printf("%llx %lf\n", num1, num2);func();return;}
编译动态库

/tools/csky/csky-tools/uclibc/csky-linux-tools-x86_64/bin/csky-linux-gcc -I/usr/lib/gcc/x86_64-redhat-linux/3.4.3/include -c -o testprintf.o testprintf.c -fPIC/tools/csky/csky-tools/uclibc/csky-linux-tools-x86_64/bin/csky-linux-gcc -shared -o libtestprintf.so testprintf.o -fPICcp libtestprintf.so /home/rtos_nfs/chenlf/rootfsle2/lib/


6、运行:

$ mkdir rootfs/cdc-cvm_1.2-linux_cskyv1_ck610-bin/cdc$ cd rootfs/cdc-cvm_1.2-linux_cskyv1_ck610-bin/$ cp cdc/HelloWorld.class rootfs/cdc-cvm_1.2-linux_cskyv1_ck610-bin/cdc$ ./bin/cvm cdc.HelloWorld




1 0