1、PDF外文:http:/ 3150 字 出处: Khuntaweetep N J S, Somkuarnpanit S. Byte code Interpreter for 8051 MicrocontrollerC/Proceedings of the International MultiConference of Engineers and Computer Scientists. 2010, 2. 8051 微控制器的字节码解释器 N. Jeenjun S. Khuntaweetep and S. Somkuarnpanit 摘要: 本文 提出了 8
2、051 单片机设计的字节码解释器。基于 Java 语言“编写一次 ,随 处运行”我们开发了一个程序 ,它可以用来操作 另一个系统自编程接口 从而代替 真正的系统。 这里有两个项目提供的指令集。第一个 命令如 IF 和 ELSE。第二个 命令 是 I2C 等外围接口 RS232 接口 、 并行端口、计时器和 LCD 接口。翻译 由 C 语言开发 , 其结构简单 ,可以 很容易开发和修改代码。从结果 中可以看出 条件命令和没有条件命令 都 可以正确执行。 关键词: 字节码 , 翻译 , 字节码 一 引言 要使用微控制器,用户必须了解其架构和语言。每个
3、家庭的 微控制器都有它自己的体系结构和指令集。例如 PIC 家庭是 RISC 和 8051 是 CISC。当用户想要使微控制器的变化来支持新的微控制器,可帮助其他用户开发新的方案。 它是废时间,因为用户必须学习新的微控制器的架构和指令集,以及解释另一种方式的微控制器要解决的问题。当用户想要改变新微控制器,用户只安装解释新微控制器,但不写新的程序。 例如,对于字节代码的 Java 语言, Java 作为由 Sun Microsystems 引入,在 1994 年已经传遍了整个计算机行业,并已传递到所有域。不过 Java 是提供“一次编写,运行
4、无处不在“的软件。在图 1 中,程序员编写的 Java 项目。 Java 编译器将编译 Java 程序的 Java 字节码。使用 Java 程序,用户需要安装 Java 虚拟机操作目标系统。如果用户要改变到新的操作系统,用户只需安装 Java 虚拟机和 Java 程序就可以正常运行。这种情况下的 Java 虚拟机就是 Java 系统解释器。 世界上人们最喜欢的玩具是乐高的头脑风暴。乐高积木解释器中有 H8 微控制器。用户接口是基于图形块。这很容易为初学者即使孩子们,都可以来开发自己的应用。为了解释的其他例子,由麻省理工学院 MetaCricket 开 发的
5、, GoGo 电路板,通过 BasicStamp 视差,picoJava-和 picoJava-,由 Sun 微系统的嵌入式 Java 虚拟机和字节代码固件设计组成的单片机。 二 系统比较 在图 2 中所描绘的标准的微控制器( MCU)语言设计,就是用户写入装配程序为目标MCU 和编译每个系统的机器代码。在这情况下,用户必须为 8051 和 PIC 制定方案 2。 在图 3 中,用户安装字节码解释器,既然后在 8051 和 PIC 单片机写入程序字节代码指令集。在这种情况下,用户写程序只有 1 次。 三 翻
6、译框图 这里解释的 MCU 有 3 个部分 ,他们如图 4 被加以描述。 VM 控制器是翻译的核心,它控制读取 /执行和状态的命令, IF, ELSE, REPEAT 和 GOTO。 VM EXECUTE 是字节码解码器。外围是硬件模块。它包括,并口,串口, I2C 端口,定时器,液晶口和算术函数。 在图 5 系统流程图描述中 MCU 后复位后,解释器从内置闪存取出字节码。条件 1 将被选中,不管它是正常的任务或任务的条件。如果是正常的任务,接下来的字节码会被解码为正常。如果不是,解释器之前会去下一个命令,检查情况。完成该操作之
7、后,程序计数器( PC)将被提高到下一行地址。 A.数据堆栈 解释器被设计成具有 16 级数据栈。该优势数据栈是,存储条件的结果指令值 IF/ ELSE和 WAITUNITL 并从结果算术命令。 数据堆栈示例被描绘在图 6 中。 00,02,09,01,00,06,00,01,40,01,35,1C, 0A 00,02:行程序地址 09: SUM 01:条件 1( IF 语句) 00:没有条件 2 06:数字 IF 语句的奴隶 00:这是主线 01,40:推送数据 40H 到当前栈 01,35:数据推 35 至下一个栈 1C:比较均等字节码 0A:在堆栈比较数据和堆栈 +1,结果将在堆。