[发明专利]一种内存检测工具的实现方法有效
申请号: | 201910745666.2 | 申请日: | 2019-08-13 |
公开(公告)号: | CN110489291B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 曾涛;潘建新 | 申请(专利权)人: | 晶晨半导体(上海)股份有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22 |
代理公司: | 上海申新律师事务所 31272 | 代理人: | 俞涤炯 |
地址: | 201203 上海市浦东新区中国*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 检测工具 实现 方法 | ||
1.一种内存检测工具的实现方法,其特征在于,提供一内核检测工具,应用于32位ARM处理器中,所述处理器提供用户区间和系统区间,所述系统区间被划分为多个区域,所述区域包括动态内存区域、模块区域、内核区域和固定映射区域;
所述内核区域设置有内核代码区域,所述内核代码区域的尾地址与所述模块区域的首地址之间的地址空间小于32MB;
于所述用户区间中划分连续的地址空间为内核检测区域,所述内核检测区域设置在用户区间和所述系统区间的交界处;
将所述内核检测区域设置为所述系统区间的映射区域,所述内核检测工具根据系统当前运行的程序代码中的检测标志检测所述内核检测区域中对应当前所述程序代码所在的内存地址的位置来判断当前的内存访问是否合法。
2.如权利要求1所述的内存检测工具的实现方法,其特征在于,所述用户区间、所述动态内存区域、所述模块区域、所述内核区域和所述固定映射区域依次相邻设置。
3.如权利要求1所述的内存检测工具的实现方法,其特征在于,所述用户区间还包括用户区域,所述用户区域的地址空间为2944MB;
所述内核检测区域的地址空间为128MB;
所述动态内存区域的地址空间为240MB;
所述模块区域的地址空间为16MB;
所述内核区域的地址空间为760MB;
所述固定映射区域的地址空间为3MB。
4.如权利要求1所述的内存检测工具的实现方法,其特征在于,所述内核检测区域的地址空间为所述用户区间的地址空间的1/24。
5.如权利要求1所述的内存检测工具的实现方法,其特征在于,在所述系统启动内核前,在系统页表存放路径中建立二级页表,所述内核检测工具根据所述二级页表对所述内核检测区域进行第一次初始化,使得所述内核检测工具的检测结果均为合法。
6.如权利要求5所述的内存检测工具的实现方法,其特征在于,在所述系统启动内核的过程中,所述内核检测工具对所述内核检测区域进行第二次初始化,所述内核检测工具判断当前的内存访问是否合法。
7.如权利要求6所述的内存检测工具的实现方法,其特征在于,进行所述第二次初始化具体包括以下步骤:
步骤A1,将所述系统页表存放路径中的所述二级页表复制到临时页表存放路径中;
步骤A2,将指向所述系统页表存放路径的寄存器的指向所述临时页表存放路径;
步骤A3,修改所述系统页表存放路径中的所述二级页表。
8.如权利要求7所述的内存检测工具的实现方法,其特征在于,所述步骤A3具体包括以下步骤:
步骤A31,清除所述系统页表存放路径中的所述二级页表的数据;
步骤A32,在所述内核区域和所述固定映射区域中根据第一公式分配对应的预留内存,随后在清除数据后的所述二级页表中根据第二公式将所述预留内存映射到所述内核检测区域中;
步骤A33,于所述内核检测区域中对未进行分配的所述动态内存区域和所述模块区域根据第二公式建立对应的映射区域;
步骤A34,在所述系统页表存放路径中建立二级页表,以根据所述二级页表对所述动态内存区域和所述模块区域对应的映射区域进行初始化,使得所述内核检测工具对当前所述程序代码所在的所述动态内存区域和所述模块区域的内存地址的内存访问均为合法;
步骤A35,将指向所述临时页表存放路径的寄存器的指回所述系统页表存放路径;
步骤A36,刷新高速缓冲区和转换检测缓冲区;
步骤A37,移除所述内核区域和所述固定映射区域中分配的所述预留内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于晶晨半导体(上海)股份有限公司,未经晶晨半导体(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910745666.2/1.html,转载请声明来源钻瓜专利网。