申请/专利权人:北京机电工程研究所
申请日:2020-08-20
公开(公告)日:2024-04-19
公开(公告)号:CN111913762B
主分类号:G06F9/445
分类号:G06F9/445;G06F8/53
优先权:
专利状态码:有效-授权
法律状态:2024.04.19#授权;2020.11.27#实质审查的生效;2020.11.10#公开
摘要:本发明涉及一种预留运行内存空间的DSP动态加载方法,属于DSP技术领域,解决DSP动态加载问题,方法包括以下步骤:对ELF文件进行预处理生成包括系统符号表的ELF模块;将ELF模块动态加载到预留运行内存空间中;根据ELF模块在运行内存空间位置导出系统符号表,对系统符号表中的符号进行重定位;根据重定位的符号,调用ELF模块的初始化函数和入口函数。本发明的动态加载方法通过预留运行内存空间解决了代码加载重定位时间不确定问题,提高代码执行效率。
主权项:1.一种预留运行内存空间的DSP动态加载方法,其特征在于,包括以下步骤:步骤S101、对ELF文件进行预处理生成包括系统符号表的ELF模块;步骤S102、将ELF模块动态加载到预留运行内存空间中;在编译链接形成可执行文件的过程中预留ELF模块运行空间,形成ELF模块运行空间的地址;加载过程中,寄存器总是指向ELF模块的系统符号表首地址,在所述地址形成过程中,预留运行空间的入口地址,以及每个ELF模块在预留空间运行的首地址,由加载器统一管理;加载器根据ELF模块运行预留区域管理表对需要加载的ELF模块进行加载;所述加载的过程不需要动态分配内存空间,直接按照顺序依次加载ELF模块;如果单个ELF模块预留的运行空间不足,则找到下一个ELF模块的首地址继续加载;所述预留区域管理表包括ELF模块的序号,与所述序号对应的模块首地址、模块末地址和模块状态;并且,序号在先ELF模块的末地址为相邻在后ELF模块的首地址;使ELF模块的地址连续;对于单个ELF模块未能完全占用对应的预留运行空间的情况,加载器更新所述ELF模块在预留运行内存空间中的首地址及空间大小,以备后续加载使用;预留运行内存空间的卸载包括:当ELF模块不再被系统所需时,加载器根据系统指令,在空闲时执行卸载指令,卸载过程从所述ELF模块占用空间的未地址开始卸载,同步更新预留运行内存空间区域状态;步骤S103、根据ELF模块在预留运行内存空间位置导出系统符号表,定位系统符号表中符号的位置;根据预留的运行内存空间,使ELF模块被映射到预定的内存地址,将需要加载的目标代码跳过重定位过程,直接进入内存分配并执行;步骤S104、根据重定位的符号,调用ELF模块的初始化函数和入口函数。
全文数据:
权利要求:
百度查询: 北京机电工程研究所 一种预留运行内存空间的DSP动态加载方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。