TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS570 MPU保护

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起作用了。

赞(0)
未经允许不得转载:TI中文支持网 » TMS570 MPU保护
分享到: 更多 (0)