[发明专利]一种内存保护方法、保护装置及单片机有效
申请号: | 201910232951.4 | 申请日: | 2019-03-26 |
公开(公告)号: | CN109947673B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 胡文超;于洪斌 | 申请(专利权)人: | 北京经纬恒润科技股份有限公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李伟;王宝筠 |
地址: | 100020 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 保护 方法 保护装置 单片机 | ||
1.一种内存保护方法,其特征在于,包括:
确定嵌入式实时操作系统的当前运行状态,其中,所述当前运行状态为内核状态、中断状态或任务状态;
依据所述当前运行状态确定是否需要切换已加载的内存保护集;其中,所述嵌入式实时操作系统配置有多组内存保护集,每一组所述内存保护集下配置有所述嵌入式实时操作系统内存的各个区域对应的内存数据访问权限;
若确定需要切换所述已加载的内存保护集,则在特权模式下将所述已加载的内存保护集切换为与所述当前运行状态对应的内存保护集;
在所述当前运行状态下,使用所述与所述当前运行状态对应的内存保护集对所述嵌入式实时操作系统的内存进行保护;
所述依据所述当前运行状态确定是否需要切换已加载的内存保护集包括:
确定与所述当前运行状态对应的内存保护集;
若所述与所述当前运行状态对应的内存保护集对应已加载的内存保护集,则确定无需切换内存保护集;
若所述与所述当前运行状态对应的内存保护集未对应已加载的内存保护集,则确定需要切换内存保护集。
2.根据权利要求1所述的方法,其特征在于,若确定无需切换所述已加载的内存保护集,所述方法还包括:
依据所需运行的应用数据确定是否改写所述嵌入式实时操作系统配置的数据保护寄存器中的数据保护范围或代码保护寄存器中的代码保护范围;
若确定需要改写,则依据所述所需运行的应用数据对应的内存地址改写所述数据保护寄存器中的数据保护范围或依据所述所需运行的应用数据对应的代码范围改写所述代码保护寄存器中的代码保护范围。
3.根据权利要求2所述的方法,其特征在于,所述依据所述所需运行的应用数据对应的内存地址改写所述数据保护寄存器中的数据保护范围或依据所述所需运行的应用数据对应的代码范围改写所述代码保护寄存器中的代码保护范围包括:
确定所述所需运行的应用数据对应的内存地址;
确定与所述应用数据对应的数据保护寄存器或代码保护寄存器;
将所述应用数据对应的数据保护寄存器或代码保护寄存器中的数据保护范围改写为所述所需运行的应用数据对应的内存地址。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述嵌入式实时操作系统配置有多组内存保护集,每一组所述内存保护集下配置有所述嵌入式实时操作系统内存的各个区域对应的内存数据访问权限,包括:
系统中预先存储有配置表;
依据所述配置表的配置策略划分所述嵌入式实时操作系统的内存保护集以及所述嵌入式实时操作系统所需保护的内存区域;
配置已划分的各个所述内存保护集下各个所述内存区域对应的内存数据访问权限。
5.根据权利要求4所述的方法,其特征在于,所述依据所述配置表的配置策略划分所述嵌入式实时操作系统的内存保护集具体包括:
将所述内存保护集划分为内核保护集、一类中断保护集、二类中断保护集以及任务保护集。
6.根据权利要求4所述的方法,其特征在于,所述依据所述配置表的配置策略划分所述嵌入式实时操作系统所需保护的内存区域具体包括:
将内核代码的内存地址范围保存至第一代码保护寄存器;
将系统栈的内存地址范围保存至第一数据保护寄存器;
将内核数据的内存地址范围保存至第二数据保护寄存器;
将当前任务栈的内存地址范围保存至第三数据保护寄存器;
将当前任务数据的内存地址范围保存至第四数据保护寄存器;
将当前中断栈的内存地址范围保存至第五数据保护寄存器;
将当前中断数据的内存地址范围保存至第六数据保护寄存器;
将当前应用集数据的内存地址范围保存至第七数据保护寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京经纬恒润科技股份有限公司,未经北京经纬恒润科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910232951.4/1.html,转载请声明来源钻瓜专利网。