[发明专利]一种数字信号处理器目标码加载方法在审
申请号: | 202111243656.2 | 申请日: | 2021-10-25 |
公开(公告)号: | CN113961345A | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 程胜;王明;邱化强;王龙;赵新鹏;王勋 | 申请(专利权)人: | 北京神舟航天软件技术股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京世誉鑫诚专利代理有限公司 11368 | 代理人: | 刘秀珍 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数字信号 处理器 目标 加载 方法 | ||
本发明提供的一种数字信号处理器目标码加载方法,所述加载方法包括:解析数字信号处理器目标码文件的文件头信息,获取段头信息和程序执行入口地址;遍历每个所述段头,识别出.cinit段,如果它的段属性为copysection,表示.cinit段需要复制;根据所述内存块的长度为每一个连续内存块分配临时缓冲区;根据所述连续内存块的长度为每个连续内存块创建虚拟内存区,将临时缓冲区中的内容拷贝到虚拟内存区;根据该连续内存块中首个段的物理地址对虚拟内存区进行初始化;将所有虚拟内存区挂接到系统内存根地址上。能够根据段头信息和加载模式合并、分配虚拟内存块,避免分配不必要的虚拟内存空间。
技术领域
本发明涉及数字信号处理器系统仿真技术领域,尤其涉及一种数字信号处理器目标码加载方法。
背景技术
数字信号处理器广泛用于以数字的形式对信号进行分析、采集、合成、变换、滤波、估算和压缩等加工处理。数字信号处理器生产厂商众多,处理器型号多达上百种,已经成为仿真平台中支持的比较常见的目标处理器。
在仿真平台中,数字信号处理器目标码的加载通常采用“定制化”的加载方法,根据处理器用户手册的内存布局以“硬编码”方式或读取处理器型号相关的配置文件来实现虚拟机内存的分配和内容的加载。
在仿真平台中,现有的数字信号处理器目标码加载方式的缺点,主要存在两方面:通用性或灵活性不足;数字信号处理器型号众多,差异较大。在仿真平台中,目标码加载模块需要依赖具体的数字信号处理器型号的内存布局,通用性和灵活性严重不足。仿真平台内存资源的浪费现有的仿真平台中,目标处理器内存布局按处理器支持的最大长度分配,这种方法会造成仿真平台内存资源的浪费,不适用于计算资源有限的仿真平台。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种数字信号处理器目标码加载方法。
根据本发明的一个方面,提供了一种数字信号处理器目标码加载方法,所述加载方法包括:
解析数字信号处理器目标码文件的文件头信息,获取段头信息和程序执行入口地址;
遍历每个所述段头,识别出.cinit段,如果它的段属性为copy section,表示.cinit段需要复制,并确定加载模式为运行内存加载,否则加载模式为存储内存加载;
遍历每个所述段头,识别出可分配的连续内存块,并将各个段的状态标记为连续状态,如果所述段为连续内存块中的首个段,标记为“连续块头”,如果所述段为在连续内存块中该段连接在首个段之后,标记为“连续块体”,所有所述段的初始状态为“未决定”;
根据所述“连续块头”计算每个连续内存块的长度;
连续内存块长度=连续块头长度+属于该连续块头的所有连续块体的长度;
根据确定的加载模式有所区分:若是运行内存加载模式,则不将.cinit段的长度包含在所述连续内存块中;
根据所述内存块的长度为每一个连续内存块分配临时缓冲区,将每个所述段的内容从目标码中拷贝到对应的所述临时缓冲区;
获取虚拟机系统内存根地址;
根据所述连续内存块的长度为每个连续内存块创建虚拟内存区,将临时缓冲区中的内容拷贝到虚拟内存区;
根据该连续内存块中首个段的物理地址对虚拟内存区进行初始化,确保虚拟内存区与物理地址完成绑定;
将所有虚拟内存区挂接到系统内存根地址上。
可选的,所述段头信息包括各个段的起始地址、大小和属性信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神舟航天软件技术股份有限公司,未经北京神舟航天软件技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111243656.2/2.html,转载请声明来源钻瓜专利网。