概述为:
参考例程来自:SW-EK-LM3S8962-8555(无片上ROM) 或SW-EK-LM3S3748-8555(有片上ROM)等的例程mpu-fault。
操作流程描述为:
实例讲解:
可以用片上MPU单元开辟一块存储区域,通过指令读-写该区域,实现数据的自定义存储-读取。该操作对片上RAM和FLASH同样有效。该操作是动态的,根据需求建立MPU内存区域,用完之后可以释放内存。
除了LM3S101和LM3S102之外,Stellaris M3都有片上MPU单元,有无片上ROM并不影响MPU的使用。参考例程来自:SW-EK-LM3S8962-8555(无片上ROM) 或SW-EK-LM3S3748-8555(有片上ROM)等的例程mpu-fault。
操作流程描述为:
- 定义MPU控制的存储区域,包括地址、大小、使能、读写控制
- 编写MPU出错中断服务子程序
- 使能MPU。注意,如果对MPU保护的区域进行不正确访问,如对read-only的区域写数据,则用户自定义的MPU出错中断服务子程序会产生出错信息,并除能MPU。因此要保证对MPU保护区域正确操作,并注意使能MPU。
- 对MPU控制区域进行读-写。
- 除能MPU保护,释放内存,这样其他部分程序可以使用该区域。
实例讲解:
1、定义MPU控制区域,使用MPURegionSet函数
//
// Configure an executable, read-only MPU region for flash. It is an 8 KB
// region with the last 1 KB disabled to result in a 7 KB executable
// region. This region is n