Arduino上的Java编程-序
发布时间
阅读量:
阅读量
在Arduino上用Java编程
序
在完成两个星期前成功开发出java版本的JVM bytecode解释器TotoroVM(详见:http://edisonlovecola.iteye.com/blog/1860545)之后,随即开始在arduino平台上实现其c++版本,并同步更新博客内容(因专注于功能实现,导致更新有所延迟,后续将补充相关内容)。在编写完解释器代码的说明部分后,遇到了关于从class文件中读取数据的具体问题。
Arduino Uno的存储结构包括2K的RAM、1K的EEPROM以及32K的Flash。根据之前java版本解释器的经验,一个基础的java框架至少需要包含Object、Class、String等核心类,并结合系统功能调用所需的System和Arduino类。无论怎样优化,这些内容都不可能压缩到2K内存以下。虽然曾考虑使用SD卡作为外部存储介质来保存数据,但仔细思考后发现这种方式存在读取速度慢和兼容性差的问题。在尝试缩减ConstantPool大小的过程中,一个新的思路逐渐成形——为何不直接放弃对ConstantPool的保存,而是将其相关信息直接嵌入代码中?更进一步地,则是将java的bytecode直接编译为c++代码,并通过avr-gcc进行二次编译处理。这样不仅能够避免存储限制问
全部评论 (0)
还没有任何评论哟~
