【技术实现步骤摘要】
动态内存保护方法、装置、计算机设备及存储介质
[0001]本专利技术涉及计算机
,具体涉及动态内存保护方法
、
装置
、
计算机设备及存储介质
。
技术介绍
[0002]目前市面上的微控制器
(Microcontroller Unit
,
MCU)
普遍存在内存保护单元
(MPU)
数量有限的问题,这使得在静态配置情况下无法满足对每个任务进行单独的内存访问限制
。
由此带来一系列严重问题,如破坏性栈溢出
、
非预期访问
、
内存冲突等,尤其在任务过多
、
而
MPU
数量有限的情况下,无法完全杜绝这些问题
。
在许多嵌入式系统中,任务间的内存隔离尤为重要,特别是在多任务操作系统
(Real Time Operating System
,
RTOS)
中
。
如果任务之间的内存访问没有得到有效地限制和管理,可能会导致数据损坏
、
系统崩溃等严重问题
。
[0003]因此,亟需一种动态内存保护方法,能够实现精细的任务间内存隔离,确保每个任务只能访问其所需的内存区域,而不会干扰其他任务的数据
。
技术实现思路
[0004]有鉴于此,本专利技术提供了一种动态内存保护方法
、
装置
、
计算机设备及存储介质 ...
【技术保护点】
【技术特征摘要】
1.
一种动态内存保护方法,其特征在于,所述方法包括:预先加载关联表;所述关联表包含多个任务,以及与所述多个任务一一对应的多个内存访问区域;当多任务系统启动任务或者切换任务时,从所述关联表中确定出与目标任务对应的目标内存访问区域,并将与所述目标内存访问区域对应的内存访问权限加载至内存保护单元中;所述内存保护单元用于根据所述内存访问权限对所述目标任务进行内存访问限制;基于
CPU
对所述目标任务进行上下文切换处理,以执行所述目标任务
。2.
根据权利要求1所述的方法,其特征在于,所述方法还包括:判断第一任务是否发生堆栈溢出情况或者非预期访问情况;所述第一任务为当前运行的任务;如果所述第一任务发生所述堆栈溢出情况或者所述非预期访问情况,则根据保障机制触发异常中断;确定与异常类型对应的异常处理机制,以及根据所述异常处理机制对异常事件进行处理
。3.
根据权利要求2所述的方法,其特征在于,所述非预期访问情况包括当前访问内存地址中出现所述内存保护单元配置以外的内存地址
、
访问总线不可访问的地址
。4.
根据权利要求2或3所述的方法,其特征在于,所述方法还包括:当第二任务抢占所述第一任务的
CPU
控制权时,从所述关联表中确定出与所述第二任务对应的第二内存访问区域;将与所述第二内存访问区域对应的第二内存访问权限加载至内存保护单元中;所述内存保护单元用于根据所述第二内存访问权限对所述第二任务进行内存访问限制;当所述第一任务的执行周期达到预设周期,或者预设事件被触发时,从所述关联表中确定出与第三任务对应的第三内存访问区域;将与所述第三内存访问区域对应的第三内存访问权限加载至内存保护单元中;所述内存保护单元用于根据所述第三内存访问权限对所述第三任务进行内存访问限制;其中,所述第二任务的优先级高于第一任务的优先级
。5.
根据权利要求1或2所述的方法,其特征在于,基于
CPU
对所述目标任务进行上下文切换处理,包括:暂停上一任务的执行状态,并将所述上一任务的上下文存储到内存中;从所述内存中检索目标任务的上下文,并将其还原至
CPU
的寄存器中,以将...
【专利技术属性】
技术研发人员:刘坤,
申请(专利权)人:镁佳北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。