在Arduino上用Java编程 2.TotoroVM使用方法 博客分类: Arduino JavaArduino编译器JVM
在Arduino上用Java编程
1.序
2.TotoroVM使用方法
TotoroVM经过一段时间的调试,在Arduino UNO上运行成功,小得瑟一下,把它开源了。欢迎试用拍砖!
项目地址:http://www.oksvn.com/Project/Detail-14993.shtml
svn地址:svn://www.oksvn.com/totorovm/totorovm/trunk
使用方法
1. 在使用环境中准备好java和ant,如需编译cpp代码,则还需要相应的编译环境。
2. 从svn获取代码 svn co svn://www.oksvn.com/totorovm/totorovm/trunk TotoroVM
3. 编译jar包 ant jar.dist
4. 编译并预处理jdk基本类 ant preprocess
* 基本类包括java包的Object, Class, String和System,以及arduino包的Arduino和Serial。
* 现在只实现了里面最基本的功能,如Object.getClass()。其它方法待以后按需添加。
* 由于java编译器限制了不能用户自定义java包下的类,所以项目里的基本类都写在了_totoro_java包下面,在预处理过程中会把class文件中的_totoro_都去除,使它们可以正确取代java的类。
* 预处理的参数可以在etc/tools.properties中配置
5. 编写java代码,代码中可以调用Arduino类中的静态方法,对应了Arduino.h中的对应实现。app目录下有一些测试用的类如:arduino.Main
6. 编译生成cpp代码 ant compile
* 生成的代码包括:
class/ 动态生成代码:每一个java类对应一组.h和.cpp文件;全局方法:class.cpp和class.h;运行环境定义:type.h;对象遍历程序:traverse.cpp,主要供gc使用。
native/ 本地方法代码:包含native方法的类会对应一个_native.h和_native.cpp实现,如果不存在,会自动生成空方法的模板,供用户自己实现cpp方法。
vm/ 系统基础实现:包括heap, stack, gc等
main.cpp 程序入门,自动调用指定类的main方法。
* 编译参数可以在etc/tools.properties中配置
至此,如果没有出错,恭喜你已经获得了和你写的java程序有同样功能的c++代码,接下来你可以用你喜欢的方式把它们编译成执行程序。我使用的是mingw-gcc和avr-gcc,分别可以编译出windows和arduino的执行程序,下次更新将介绍这两个工具的使用方法。