MPU简述
1. MPU的具体实现MCU中有MPU模块可配置多个保护区每个保护区可分别配置访问权限访问权限包括读、写、可执行。在OS中为每个Application甚至Task单独配置保护区在发生任务切换的时候同时切换MPU寄存器的配置从而实现不同Task可访问不同区域。MPU对内存的保护是硬件实现且实时的不占用运行时钟周期只在任务切换时占用几个时钟周期切换MPU寄存器。2. 权限等级U - User用户模式权限较低S - Supervisor特权模式权限较高R - Read读取权限W - Write写入权限X - Execute执行权限3. 内存保护配置策略内存大致会分为以下几个区域公共基础RAM特权模式可读可写用户模式只读用户私有RAM明确配置给某个Application仅该App可读可写不影响其他App或OS程序Flash特权模式和用户模式都可读可执行全局共享RAM全局可读可写用于在不同App及权限模式下传递数据外设寄存器区域特权模式可读可写栈通常为OS自动操作任务切换时把当前任务的栈空间设置为可读可写其他任务栈空间设置为不可访问避免栈溢出4. App间交互通常有两种方式一是上面提到的共享RAM二是通过Trust Function和Non Trust Function。Trust Function隶属于高权限App是高权限App提供给低权限App的调用接口低权限App调用高权限App的Trust Function时是通过OS封装好的接口函数进行调用OS在调用的时候会把提高权限保证低权限App能够成功调用接口。Non Trust Function隶属于低权限App是低权限App提供给高权限App的调用接口高权限App调用低权限App的Trust Function时也是通过OS封装好的接口函数进行调用OS在调用的时候会降低权限防止Non Trust Function借用高权限App的权限对数据进行误操作。