TMS570LS1224的板子,我通过HALCoGen软件配置MPU域3范围从0x08001500到0x080214FF共128KB权限为特权模式只读,同时在程序中设定一个起始地址为0x08001500,长度为128的数组,当我在程序中对该数组进行赋值时,
就会执行
b _dabort,
然后单步执行,
跳到
_dabort
stmfd r13!, {r0 – r12, lr}; push registers and link register on to stack
再单步执行下去就是这两句不停地循环了,如下面两张图
,我的问题是:
1.为什么执行完stmfd r13!, {r0 – r12, lr}; 这句后没有执行下面的ldr r12, esmsr3 ;而是重新跳到 b _dabort?
2.正常的触发MPU保护的软件流程应该是怎么样的?
附上部分程序截图:
1.在程序中定义一个起始地值为0x08001500的数组,在对数组mpudata2【1】进行赋值后,程序跳转到 b _dabort
2.R0-R13的值
3.HALCoGen的配置
4.CMD图
Susan Yang:
很抱歉,关于MPU的部分我不是太熟悉,请您在英文论坛发帖询问以获取专业工程师的回答
e2e.ti.com/…/312
gaoyang9992006:
对只读的内存区域执行了写操作,跳到了中断abort(终止执行)这说明MPU起作用了。