Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception handling cortex m3微控制器内存管理故障的产生_Exception Handling_Cortex M3 - Fatal编程技术网

Exception handling cortex m3微控制器内存管理故障的产生

Exception handling cortex m3微控制器内存管理故障的产生,exception-handling,cortex-m3,Exception Handling,Cortex M3,我是一名工科学生,目前正在学习cortex m3处理器及其异常处理模型。 我已经生成并测试了使用故障、总线故障、硬故障及其相应的故障处理程序 但我不知道如何生成内存管理错误 (不考虑上下文中的MPU) 是否有其他方法产生内存管理故障 提前感谢您引用(我的重点): MemManage故障处理指令和数据内存事务中由内存保护单元或固定内存保护约束确定的内存保护故障 换句话说,如果你不想对MPU进行编程,你必须寻找其中一个固定的约束条件,最明显的是开始寻找。Execute对我来说从来都不是一个约束,可以

我是一名工科学生,目前正在学习cortex m3处理器及其异常处理模型。 我已经生成并测试了使用故障、总线故障、硬故障及其相应的故障处理程序

但我不知道如何生成内存管理错误 (不考虑上下文中的MPU)

是否有其他方法产生内存管理故障

提前感谢您引用(我的重点):

MemManage故障处理指令和数据内存事务中由内存保护单元或固定内存保护约束确定的内存保护故障

换句话说,如果你不想对MPU进行编程,你必须寻找其中一个固定的约束条件,最明显的是开始寻找。Execute对我来说从来都不是一个约束,可以肯定的是,尽管Cortex-M3 TRM有点模糊(“故障异常”),但该体系结构表示:

XN表示从不执行区域。任何试图从XN区域执行代码的行为都会出现故障,从而生成MemManage异常


好了。看起来最简单的方法是简单地分支到系统区域(0xE0000000-0xFFFFFF),因为无论MPU配置如何,该区域始终是XN。

我没有在低级别使用m3的直接经验,因此我不能肯定地回答,但我相信执行
非法访问
指令将导致MM故障。您应该能够使用调试器单步执行,也可以编写代码,在运行时发送指令。