AG真人官网平台MPU抽象层设计与使用方法的设备,用来指定一块特定内存区域的访问权限,比如读,写,和从该区域执行代码的权限。内存保护单元可以增加系统的健壮性,预防一些
目前对ARMV7-M和ARMV8-M架构实现了初步的支持。框架通用的代码在components/mp目录下AG真人官网平台,硬件相关的代码存放在libcpuAG真人官网平台,并提供了两个简单的例程。
的任务和内核使用同一个地址空间,全部运行在特权级。所有代码默认对任何内存都有读,写,和执行的权限。使用MPU框架可以给特定的内存区域设置更低的权限,如只读权限。MPU框架可以被用来实现以下的功能:
RT_USING_HW_STACK_GUARD:使用MPU检测栈溢出。具体实现原理是在任务栈顶和栈底各设置一个MPU区域,权限设置为不可访问。如果发生栈溢出,代码访问了MPU保护的地址,会触发异常
通常程序需要定义一块内存区域只能由一个特定的任务访问。允许访问该内存区域的任务可以调用以下函数实现这个功能:
任何代码进行内存访问,都要遵守这些区域的配置。可以用固定的MPU区域AG真人官网平台,把代码段配置为只读,可执行,把数据段配置成可读写,不可执行。
rt_mem_exception_info_t结构体根据处理器机构定义,对于ARM架构,提供以下用来诊断内存异常的信息: