[发明专利]面向机械臂程序开发编程语言的虚拟机及对汇编文件的运行方法有效
申请号: | 202010495867.4 | 申请日: | 2020-06-03 |
公开(公告)号: | CN111767116B | 公开(公告)日: | 2023-09-05 |
发明(设计)人: | 史宁宁;许中兴;王俊强;吴伟;常先明 | 申请(专利权)人: | 江苏中科重德智能科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/30;B25J9/16 |
代理公司: | 北京金咨知识产权代理有限公司 11612 | 代理人: | 宋教花 |
地址: | 210000 江苏省南京市麒麟科技创*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 机械 程序 开发 编程 语言 虚拟机 汇编 文件 运行 方法 | ||
1.一种面向机械臂程序开发编程语言的虚拟机,其特征在于,该虚拟机包括:
代码载入模块,用于对经编译器编译产生汇编文件进行加载,所述汇编文件包括文本格式和二进制格式,所述代码载入模块对汇编文件进行加载时,基于预定的标识来识别所述汇编文件是文本格式还是二进制格式,并基于识别的结果调用相应的函数来对汇编文件进行加载;
代码载入模块对二进制格式的汇编文件的加载过程包括:读取所述二进制格式的汇编文件,将汇编文件中的程序代码和数据存放在预定的ELF格式文件相应的代码段和数据段中,对所述ELF格式文件进行逐行读取,将ELF格式文件中的数据保存在内存中,并将读取的ELF格式文件中的数据类型、变量和程序代码填充到第一结构体中相应的部分,并输出所述第一结构体;
程序执行模块,用于运行代码载入模块输出的第一结构体,其运行过程为:创建第二结构体并初始化所述第二结构体,加载动态扩展模块程序,运行初始化后的第二结构体,所述运行初始化后的第二结构体的过程包括:遍历保存在所述第二结构体中的代码程序块,从代码程序的入口函数进入调用程序,将代码压入堆栈形成代码帧,获取所述代码帧中的数据和字节码,基于虚拟机中预定的指令集解析执行字节码相应的指令;
所述第一结构体是代码载入模块预定的汇编程序转换的结构体;
所述第二结构体是程序执行模块预定的上下文运行环境结构体;
所述汇编程序转换的结构体为Prog结构体;所述上下文运行环境结构体为ExecCtx结构体;
所述ELF格式文件中新增了多个数据段以存放二进制格式的汇编文件中的信息,所述多个数据段包括以下中的一个或多个:用于存放持久量的数据段、用于存放全局变量的数据段、用于存放局部变量的数据段、用于存放错误恢复信息的数据段、用于存放类型信息的数据段。
2.根据权利要求1所述的虚拟机,其特征在于,所述预定的标识是代码载入模块读取的汇编文件名字开头的魔术字。
3.根据权利要求1所述的虚拟机,其特征在于,所述代码载入模块还用于对动态扩展模块进行加载,加载的过程包括:
调用第一函数加载以规定方式命名的动态共享对象文件中的符号,并为加载的动态共享对象返回句柄;
调用第二函数对第一函数加载的动态共享对象文件中的符号和由第一函数返回的句柄进行操作,并返回所述符号对应的地址;
基于第二函数返回的地址获得动态共享对象文件中的扩展函数的函数名,将所述扩展函数加入到扩展函数表,输出第三结构体列表;
所述第一函数是用于加载动态共享对象文件中的符号,并为加载的对象返回句柄的函数;
所述第二函数是用于返回第一函数中符号对应地址的函数;
所述第三结构体是动态扩展模块接入结构体,用于存储动态扩展模块中的句柄信息和已注册的扩展函数。
4.根据权利要求3所述的虚拟机,其特征在于,所述动态共享对象文件中包含多个扩展函数,所述扩展函数是利用动态扩展模块的扩展接口并按照动态扩展模块规定的方式进行注册的外部函数,所述扩展函数是预先编译的。
5.根据权利要求1所述的虚拟机,其特征在于,所述程序执行模块还用于运行经代码载入模块加载的文本格式的汇编文件。
6.根据权利要求1所述的虚拟机,其特征在于,所述程序执行模块包括执行结构体和执行引擎;
所述执行结构体用于存储程序执行模块中的多种数据类型,所述执行结构体就是第二结构体;
所述执行引擎用于执行所述执行结构体中的存储的程序代码。
7.根据权利要求1所述的虚拟机,其特征在于,所述虚拟机还包括:
内嵌库模块,包括数据检索库、中断信号库和系统功能库;
程序调试模块,用于对程序执行模块中的程序代码进行调试,包括调试结构体和调试引擎。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏中科重德智能科技有限公司,未经江苏中科重德智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010495867.4/1.html,转载请声明来源钻瓜专利网。