[发明专利]一种基于ARM处理器的无操作系统算法动态加载方法有效
申请号: | 202210548606.3 | 申请日: | 2022-05-20 |
公开(公告)号: | CN114816581B | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 周悟强;余亚翔 | 申请(专利权)人: | 中国电子科技集团公司第三十研究所 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 张杰 |
地址: | 610000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 arm 处理器 操作系统 算法 动态 加载 方法 | ||
本发明公开了一种基于ARM处理器的无操作系统算法动态加载方法,包括以下步骤:S1.将调用算法的固件主程序固化到地址A,将算法代码指定到SRAM/RAM空间的地址B,并在地址B首部放置算法函数列表以获取函数;S2.在固件主程序运行中需要调用算法时,将算法代码加注到地址B,并使用指针函数指向地址B的首地址,通过调用指针函数获取算法函数列表,从而实现算法动态加载。本发明可实现程序运行过程中算法资源实时动态加载技术,提高产品安全性和扩展性。
技术领域
本发明涉及电数字数据处理技术领域,尤其涉及一种基于ARM处理器的无操作系统算法动态加载方法。
背景技术
在嵌入式小型安全产品设计时基于安全考虑一般将算法程序和业务调度主程序分开实现,在主程序启动运行后当需要调用算法时再动态加载到内存中运行,实现算法程序动态加载实时调用,掉电后资源丢失。由于操作(如Linux等)可通过动态库标准函数加载资源,这对实现算法动态加技术不存在技术障碍。但在无操作系统的ARM小系统环境中,由于没有操作系统支持,无法使用操作系统的动态库等加载技术实现目标算法程序的动态加载。如果使用传统方法将算法程序与固件一起整体编译又存在安全性低、程序无法实时动态更换、算法更新需要更新整体固件后重启设备程序等诸多问题。如果引入操作系统以支持动态加载则可能需要升级处理器,配置足够RAM,这对于嵌入式低成本产品来说是无法忍受的。
发明内容
为了解决上述问题,针对无操作系统的ARM嵌入式微小型系统,本发明提出一种基于ARM处理器的无操作系统算法动态加载方法,可实现程序运行过程中算法资源实时动态加载技术,提高产品安全性和扩展性。
本发明采用的技术方案如下:
一种基于ARM处理器的无操作系统算法动态加载方法,包括以下步骤:
S1.将调用算法的固件主程序固化到地址A,将算法代码指定到SRAM/RAM空间的地址B,并在地址B首部放置算法函数列表以获取函数;
S2.在固件主程序运行中需要调用算法时,将算法代码加注到地址B,并使用指针函数指向地址B的首地址,通过调用指针函数获取算法函数列表,从而实现算法动态加载。
进一步地,在ARM产品系统初始设计时,对固件主程序和算法程序分别建立独立的工程,每个工程规划互不重叠的程序运行内存空间。
进一步地,将固件主程序的烧录文件规划存储在EFLASH或FLASH芯片可固化地址存储区即地址A,在上电后仅将DATA,BSS区域段初始化到掉电可丢失的SRAM/RAM空间,配置程序堆栈地址。
进一步地,将算法程序的所有程序空间全部规划到SRAM/RAM空间地址即地址B,不配置堆栈空间;所述算法程序的所有程序空间包括CODE,DATA,BSS区域段。
进一步地,在链接器生产嵌入式工程代码时,指定算法函数列表获取函数存储在算法程序规划的SRAM/RAM空间首地址。
进一步地,在固件主程序运行中需要调用算法服务时,通过外部加载方式或内部搬移方式将算法库代码加注到算法程序规划的SRAM/RAM空间即地址B。
进一步地,所述外部加载方式的载体包括介质和总线接口。
进一步地,所述内部搬移方式的载体包括固化的内部EFLASH或FLASH区。
进一步地,将指针函数赋值为算法程序规划的SRAM/RAM空间首地址,由外部传入算法函数列表数组,通过调用指针函数获取算法所提供的约定算法函数列表返回到算法函数列表数组中。
进一步地,当成功获取到算法函数列表数组后,固件主程序在需要调用算法服务时只需要调用约定的数组函数即可。
本发明的有益效果在于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210548606.3/2.html,转载请声明来源钻瓜专利网。