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需要等待当前的加载/存储指令执行完毕后才执行下一条指令。这样会导致性能下降。