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




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值