[发明专利]适用于处理器实时控制的软件编程及其汇编链接方法有效
申请号: | 201810569188.X | 申请日: | 2018-06-05 |
公开(公告)号: | CN108776594B | 公开(公告)日: | 2021-02-09 |
发明(设计)人: | 梅魁志;赵海波;伍健;郑斐;李恒杰;张瑞智;程军;舒伟华;谷新宇 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/448 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 处理器 实时 控制 软件 编程 及其 汇编 链接 方法 | ||
本发明公开了一种适用于处理器实时控制的软件编程及其汇编链接方法,包括以下步骤:将所有函数划分为若干组,汇编器对每个函数定义进行词法及语法分析,并将每个函数的信息均记录于函数信息链表中,其中,每个函数的信息为函数信息链表中的一个节点;同时对每个函数组定义进行分析,将每个函数组的信息记录于函数组信息链表,该方法能够动态调整处理器逻辑地址与物理地址的映射。
技术领域
本发明属于嵌入式系统软件领域,涉及一种适用于处理器实时控制的软件编程及其汇编链接方法。
背景技术
现有一款处理器,其存储器包括SRAM存储器和只读指令存储器(ROM),该处理器特点为所接存储器的物理地址空间大于其逻辑地址空间。为方便下文叙述,指定其逻辑寻址空间大小为64K字节,所接SRAM大小为32K,ROM大小为128K。
在处理器设计上,其逻辑地址的低32K字节被固定映射到SRAM存储器,高32K字节为用户程序USER_PROGRAM空间,映射到ROM特定的段,每个段大小为32K。逻辑地址高32K字节到存储器物理地址的映射关系通过一个空间映射寄存器MAP_REG控制,其关系如下:
physical_addr=(MAP_REG-1)*0x8000+logicl_addr
physical_addr表示ROM存储器物理地址,logical_addr表示高32K逻辑地址,MAP_REG寄存器存储处理器当前映射的ROM段的基址,控制物理地址起始位置相对于逻辑地址的偏移。
在实际使用中,该处理器的应用环境要求对程序的执行时间进行精确控制,即每组任务的执行时间应少于指定的时间。且在装载可执行程序时,程序的大小会大于32K字节,所以要求对处理器的逻辑地址与物理地址的映射进行动态调度以加载相应的函数,然而现有公开文件中没有出现相应的技术。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种适用于处理器实时控制的软件编程及其汇编链接方法,该方法能够动态调整处理器逻辑地址与物理地址的映射。
为达到上述目的,本发明所述的适用于处理器实时控制的软件编程方法包括以下步骤:
将所有函数划分为若干组,汇编器对每个函数定义进行词法及语法分析,并将每个函数的信息均记录于函数信息链表中,其中,每个函数的信息为函数信息链表中的一个节点;同时对每个函数组定义进行分析,将每个函数组的信息记录于函数组信息链表。
每个函数的信息均包括函数的函数名、函数包含的指令的机器码、函数的起始物理地址及函数的结束物理地址。
每个函数组的信息均包括函数组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寄存器中的值一致,然后通过内核程序执行函数组的运行调度。
通过内核程序执行函数组的运行调度的具体操作为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810569188.X/2.html,转载请声明来源钻瓜专利网。