内存保护单元 MPU

MPU用于设置存储区域的访问权限,如特权级和用户级的读写权限,防止用户程序破坏操作系统数据,阻止任务间数据区交叉访问,确保关键数据的只读性,并能检测存储访问异常。此外,它还能防止代码注入攻击,通过定义内存类型提升系统性能和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 mpu的功能

1 设置不同的存储区域的存储器访问权限 (特权级,用户级,全访问(全访问就是特权跟用户都可以进行访问))
2 设置存储器内存的外设属性 (可缓存、可缓存、可共享)

2 具体好处

1 阻止用户应用程序破坏操作系统使用的数据
2 阻止一个任务访问其他任务的数据区
3 把关键数据区设置为只读,从根本上解决被破坏的可能
4 检查意外的存储访问,如堆栈溢出、数组越界等
5 将 sram or ram定义为不可执行,防止代码注入攻击

3 mpu 设置内存区域的访问权限

1 无访问(特权 and 用户级 都不可访问)
2 仅支持特权级读写访问
3 禁止用户写访问(特权可读写访问)
4 全访问 (特权and用户级都可访问)
5 仅支持特权读访问
6 只读 (特权and用户都不可以写)

配置好 MPU,不得访问定义外的地址空间,也不得访问未经授权的区域,否则属于非法访问(触发错误异常 MemManage)

4 三种内存类型 (性能由强变弱)

1)、Normal memory (rom flash sram)

    CPU以最高效的方式加载和存储字节、半字和字,对于这种内存区,CPU的加载或存储不一定要按照程序列出的顺序执行。

2)、Device memory (外设)

    对于这种类型的内存区,加载和存储要严格按照次序进行,这样是为了确保寄存器按照正确顺序设置。

3)、Strongly ordered memory

    程序完全按照代码顺序执行,CPU需要等待当前的加载/存储指令执行完毕后才执行下一条指令。这样会导致性能下降。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值