在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的执行程序,下次更新将介绍这两个工具的使用方法。
相关推荐
Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS1307时钟Arduino 例程详细教学38.I2C模块 DS...
Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程详细教学29.矩阵键盘Arduino 例程...
土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细教学37.土壤湿度传感器程序Arduino 例程详细...
Arduino-Arduino-Queue.h.zip,用于ARDUIO嵌入式项目的通用C 循环队列,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,Arduino通过开源系统提供了很多灵活性。
Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学2.LED闪烁Arduino 例程详细教学...闪烁Arduino 学2.LED闪烁Arduino 例程详细教学2.LED闪烁vvvvvvvvv
Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学22.PS2摇杆Arduino 例程详细教学...
- return和goto:从函数返回和无条件跳转,但goto在Arduino中使用较少。 5. 中断处理: - attachInterrupt():为引脚分配中断服务程序。 - detachInterrupt():关闭指定引脚的中断。 - interrupts()和noInterrupts...
Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟Arduino 例程详细教学32.DS1302时钟...
这个压缩包提供了一种方便的方式,使用户能够在Arduino IDE中直接开发和编程STM32F1和STM32F4系列的微控制器。 首先,让我们详细了解一下Arduino。Arduino是一种开源电子原型平台,基于易于使用的硬件和软件。它...
Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino 例程详细教学30.咪头Arduino ...
基于Arduino平台的PID仿真器.zip基于Arduino平台的PID仿真器.zip基于Arduino平台的PID仿真器.zip基于Arduino平台的PID仿真器.zip基于Arduino平台的PID仿真器.zip基于Arduino平台的PID仿真器.zip基于Arduino平台的PID...
在本文中,我们将深入探讨如何下载和安装Arduino驱动程序,这对于使用Arduino开发板进行电子制作和编程至关重要。Arduino是一款开源硬件平台,它允许用户通过简单的编程语言控制各种电子元件,从而实现各种创新项目...
Arduino-hakko_t12.zip,ATMega328烙铁控制器上的Hakko T12数字控制器Fot Hakko T12 Tips基于ATMega328P PU多微控制器(Arduino Uno/Nano),Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子...
本文将深入探讨ArduinoJson.h这个库的使用方法以及它在物联网项目中的重要作用。 一、ArduinoJson库简介 ArduinoJson库是由Benjamin Leonard创建的,它是一个轻量级的JSON解析器和序列化器,专为嵌入式系统设计,...
arduino-esp32_git.tar.bz2 通过命令 $ git clone --recursive https://github.com/espressif/arduino-esp32.git 得到的,100多M,解压之后,变小了70多M
NULL 博文链接:https://edisonlovecola.iteye.com/blog/1869689
Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器Arduino 例程详细教学28.霍尔传感器...
Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程详细教学20.红外遥控器解码Arduino 例程...
Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器Arduino 例程详细教学7.蜂鸣器...
Arduino 例程详细教学14.倾斜开关Arduino 例程详细教学14.倾斜开关Arduino 例程详细教学14.倾斜开关Arduino 例程详细教学14.倾斜开关Arduino 例程详细教学14.倾斜开关Arduino 例程详细教学14.倾斜开关Arduino 例程...