主题中讨论的其他器件: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
