您的位置:首页 > 其它

CSKY CVM jni环境搭建

2016-04-25 15:14 267 查看
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 -fPIC
cp 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: