This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570 MPU保护

Other Parts Discussed in Thread: HALCOGEN, TMS570LS1224

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图