CSKY CVM jni環境搭建

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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章