[发明专利]适用于处理器实时控制的软件编程及其汇编链接方法有效
申请号: | 201810569188.X | 申请日: | 2018-06-05 |
公开(公告)号: | CN108776594B | 公开(公告)日: | 2021-02-09 |
发明(设计)人: | 梅魁志;赵海波;伍健;郑斐;李恒杰;张瑞智;程军;舒伟华;谷新宇 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/448 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 处理器 实时 控制 软件 编程 及其 汇编 链接 方法 | ||
1.一种适用于处理器实时控制的汇编链接方法,其特征在于,基于适用于处理器实时控制的软件编程方法,所述适用于处理器实时控制的软件编程方法包括以下步骤:
将所有函数划分为若干组,汇编器对每个函数定义进行词法及语法分析,并将每个函数的信息均记录于函数信息链表中,其中,每个函数的信息为函数信息链表中的一个节点;同时对每个函数组定义进行分析,将每个函数组的信息记录于函数组信息链表;
每个函数的信息均包括函数的函数名、函数包含的指令的机器码、函数的起始物理地址及函数的结束物理地址;
每个函数组的信息均包括函数组id以及函数组包含的函数名;
包括以下步骤:
在ROM中定义函数入口地址数组USR_PROG_ARR及空间映射配置数组MAP_REG_ARR,其中,通过USR_PROG_ARR数组记录每个函数的起始物理地址,同时通过USR_PROG_ARR数组按顺序连续存放各个函数组中的函数,每个函数组起始处对应的元素为该函数组的id;MAP_REG_ARR数组记录每个函数所在的ROM段的基址,MAP_REG_ARR数组中的元素与USR_PROG_ARR数组中的函数一一对应,MAP_REG_ARR数组中的元素值由函数的起始物理地址与ROM段的大小相除再取整得到,MAP_REG_ARR数组中的元素值与MAP_REG寄存器中的值一致,然后通过内核程序执行函数组的运行调度。
2.根据权利要求1所述的适用于处理器实时控制的汇编链接方法,其特征在于,通过内核程序执行函数组的运行调度的具体操作为:
1)内核程序定义指针USR_PROG_POINTER及MAP_REG_POINTER,USR_PROG_POINTER的初始位置指向USR_PROG_ARR数组的头部,MAP_REG_POINTER的初始位置指向MAP_REG_ARR数组的头部,当执行函数组调用时,则转至步骤2);
2)USR_PROG_POINTER加1;
3)判断USR_PROG_POINTER指向函数组的位置,当USR_PROG_POINTER指向函数组的id标识时,表明已经完成了该函数组的调用,则退出此次函数组的调用;当USR_PROG_POINTER没有指向函数组的id标识时,表明此时USR_PROG_POINTER指向函数组中某个函数的入口地址,则转至步骤4):
4)取MAP_REG_POINTER指向的函数组中的数据,并将MAP_REG_POINTER指向的函数组中的数据赋值给空间映射寄存器MAP_REG;
5)MAP_REG_POINTER加1,以指向下一个函数所在的ROM段基址;
6)取USR_PROG_POINTER指向的函数组中的数据,并调用该函数;
7)重复步骤2)至步骤6),直至完成该函数组的调用为止;
8)USR_PROG_POINTER加1,然后转至步骤3),直至完成所有函数组的调用为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810569188.X/1.html,转载请声明来源钻瓜专利网。