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.

[参考译文] TMS570LS3137-MPU:EP -禁用闪存中所选扇区的代码执行

Guru**** 2553430 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1326194/tms570ls3137-ep-mpu---disabling-code-execution-of-selected-sector-in-flash-memory

器件型号:EP
主题中讨论的其他器件:HALCOGEN

您好!

我正在尝试使用 MPU 来使用 以下代码禁用闪存存储体0扇区2 (32KB 大小)中的代码执行。  

;禁用 MPU
MRC P15、#0、R1、C1、C0、 #0
BIC R1、R1、1号
丹麦国家铁路
MCR P15、#0、R1、C1、C0、 #0
ISB
;禁用背景区域
MRC P15、#0、R1、C1、C0、 #0
BIC R1、R1、#0x20000
MCR P15、#0、R1、C1、C0、 #0

;存储区编号为0
MOV R1、0
MCR P15、#0、R1、C6、C2、 #0

;设置存储器基址 Bank-0、扇区 -2 0x0001_0000
MOV R2,#0x0000
MOVT R2,#0x0001
MCR P15、#0、R2、C6、C1、 #0

;设置内存大小32KB
MOVW R1、#0xFF1D
MCR P15、#0、R1、C6、C1、 2号

;tex、c、s、b 不可高速缓存
MOV R1、#0x0008
;从不执行,不能访问内存
ORR R1、R1、#0x1000
MCR P15、#0、R1、C6、C1、 #4

;启用 MPU 背景区
MRC P15、#0、R1、C1、C0、 #0
ORR R1、R1、#0x20000
MCR P15、#0、R1、C1、C0、 #0

;启用 MPU
MRC P15、#0、R1、C1、C0、 #0
ORR R1、R1、1号
丹麦国家铁路
MCR P15、#0、R1、C1、C0、 #0
ISB

尽管将 XN 位设置为1、0x00010000处的指令仍在执行、并且没有发生中止。 我使用了 halcogen 生成的设置进行了检查、这些设置与上述相同。  

所以、是否可以或允许从闪存存储器禁用代码执行? 如果允许、您能否建议问题所在的位置。

谢谢。

Jai

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jai:

      您不必在闪存存储体0扇区中编写用于禁用代码执行的汇编指令- 2、而是从 HALCoGen itslef 中执行该操作。

    我的意思如下:

    --
    谢谢。此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jagadish、您好!

    感谢您的答复。  按照您的建议在0x00010000范围内启用子区域后、将发生预取中止。

    谢谢。

    Jai