CSR 位字段

RISC-V pmpcfg4 CSR 寄存器详解

地址 0x3A4特权级 Machine 模式访问 读写 / XLENMachine 物理内存保护 CSR

pmpcfg4 是物理内存保护配置 CSR,描述一组 PMP 区域的读/写/执行权限、地址匹配方式和锁定位。

字段映射

按 bit 字段理解 pmpcfg4

48 个关键字段
7

pmp16cfg.L

读写

PMP 条目 16 的锁定位。

这个字段控制什么

  • - PMP 条目 16 的锁定位。

常见取值

pmp16cfg.L
0未锁定

PMP entry 16 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr16 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 16 锁定;写入 pmp16cfg 和 pmpaddr16 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr15 也会被锁定。

打开官方手册
6:5

pmp16cfg.reserved

只读

PMP 条目 16 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 16 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
4:3

pmp16cfg.A

读写

PMP 条目 16 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 16 的地址匹配模式。

常见取值

pmp16cfg.A
0OFF

PMP entry 16 关闭,匹配空区域。

1TOR

PMP entry 16 使用 top-of-range 匹配;上界来自 pmpaddr16,下界来自 pmpaddr15。

2NA4

PMP entry 16 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 16 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr16 的低位编码。

打开官方手册
2

pmp16cfg.X

读写

PMP 条目 16 的执行权限。

这个字段控制什么

  • - PMP 条目 16 的执行权限。

常见取值

pmp16cfg.X
0禁止执行

PMP entry 16 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 16 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
1

pmp16cfg.W

读写

PMP 条目 16 的写权限。

这个字段控制什么

  • - PMP 条目 16 的写权限。

常见取值

pmp16cfg.W
0禁止写

PMP entry 16 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 16 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
0

pmp16cfg.R

读写

PMP 条目 16 的读权限。

这个字段控制什么

  • - PMP 条目 16 的读权限。

常见取值

pmp16cfg.R
0禁止读

PMP entry 16 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 16 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
15

pmp17cfg.L

读写

PMP 条目 17 的锁定位。

这个字段控制什么

  • - PMP 条目 17 的锁定位。

常见取值

pmp17cfg.L
0未锁定

PMP entry 17 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr17 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 17 锁定;写入 pmp17cfg 和 pmpaddr17 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr16 也会被锁定。

打开官方手册
14:13

pmp17cfg.reserved

只读

PMP 条目 17 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 17 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
12:11

pmp17cfg.A

读写

PMP 条目 17 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 17 的地址匹配模式。

常见取值

pmp17cfg.A
0OFF

PMP entry 17 关闭,匹配空区域。

1TOR

PMP entry 17 使用 top-of-range 匹配;上界来自 pmpaddr17,下界来自 pmpaddr16。

2NA4

PMP entry 17 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 17 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr17 的低位编码。

打开官方手册
10

pmp17cfg.X

读写

PMP 条目 17 的执行权限。

这个字段控制什么

  • - PMP 条目 17 的执行权限。

常见取值

pmp17cfg.X
0禁止执行

PMP entry 17 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 17 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
9

pmp17cfg.W

读写

PMP 条目 17 的写权限。

这个字段控制什么

  • - PMP 条目 17 的写权限。

常见取值

pmp17cfg.W
0禁止写

PMP entry 17 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 17 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
8

pmp17cfg.R

读写

PMP 条目 17 的读权限。

这个字段控制什么

  • - PMP 条目 17 的读权限。

常见取值

pmp17cfg.R
0禁止读

PMP entry 17 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 17 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
23

pmp18cfg.L

读写

PMP 条目 18 的锁定位。

这个字段控制什么

  • - PMP 条目 18 的锁定位。

常见取值

pmp18cfg.L
0未锁定

PMP entry 18 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr18 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 18 锁定;写入 pmp18cfg 和 pmpaddr18 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr17 也会被锁定。

打开官方手册
22:21

pmp18cfg.reserved

只读

PMP 条目 18 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 18 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
20:19

pmp18cfg.A

读写

PMP 条目 18 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 18 的地址匹配模式。

常见取值

pmp18cfg.A
0OFF

PMP entry 18 关闭,匹配空区域。

1TOR

PMP entry 18 使用 top-of-range 匹配;上界来自 pmpaddr18,下界来自 pmpaddr17。

2NA4

PMP entry 18 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 18 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr18 的低位编码。

打开官方手册
18

pmp18cfg.X

读写

PMP 条目 18 的执行权限。

这个字段控制什么

  • - PMP 条目 18 的执行权限。

常见取值

pmp18cfg.X
0禁止执行

PMP entry 18 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 18 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
17

pmp18cfg.W

读写

PMP 条目 18 的写权限。

这个字段控制什么

  • - PMP 条目 18 的写权限。

常见取值

pmp18cfg.W
0禁止写

PMP entry 18 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 18 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
16

pmp18cfg.R

读写

PMP 条目 18 的读权限。

这个字段控制什么

  • - PMP 条目 18 的读权限。

常见取值

pmp18cfg.R
0禁止读

PMP entry 18 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 18 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
31

pmp19cfg.L

读写

PMP 条目 19 的锁定位。

这个字段控制什么

  • - PMP 条目 19 的锁定位。

常见取值

pmp19cfg.L
0未锁定

PMP entry 19 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr19 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 19 锁定;写入 pmp19cfg 和 pmpaddr19 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr18 也会被锁定。

打开官方手册
30:29

pmp19cfg.reserved

只读

PMP 条目 19 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 19 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
28:27

pmp19cfg.A

读写

PMP 条目 19 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 19 的地址匹配模式。

常见取值

pmp19cfg.A
0OFF

PMP entry 19 关闭,匹配空区域。

1TOR

PMP entry 19 使用 top-of-range 匹配;上界来自 pmpaddr19,下界来自 pmpaddr18。

2NA4

PMP entry 19 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 19 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr19 的低位编码。

打开官方手册
26

pmp19cfg.X

读写

PMP 条目 19 的执行权限。

这个字段控制什么

  • - PMP 条目 19 的执行权限。

常见取值

pmp19cfg.X
0禁止执行

PMP entry 19 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 19 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
25

pmp19cfg.W

读写

PMP 条目 19 的写权限。

这个字段控制什么

  • - PMP 条目 19 的写权限。

常见取值

pmp19cfg.W
0禁止写

PMP entry 19 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 19 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
24

pmp19cfg.R

读写

PMP 条目 19 的读权限。

这个字段控制什么

  • - PMP 条目 19 的读权限。

常见取值

pmp19cfg.R
0禁止读

PMP entry 19 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 19 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
39

pmp20cfg.L

读写

PMP 条目 20 的锁定位。

这个字段控制什么

  • - PMP 条目 20 的锁定位。

常见取值

pmp20cfg.L
0未锁定

PMP entry 20 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr20 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 20 锁定;写入 pmp20cfg 和 pmpaddr20 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr19 也会被锁定。

打开官方手册
38:37

pmp20cfg.reserved

只读

PMP 条目 20 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 20 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
36:35

pmp20cfg.A

读写

PMP 条目 20 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 20 的地址匹配模式。

常见取值

pmp20cfg.A
0OFF

PMP entry 20 关闭,匹配空区域。

1TOR

PMP entry 20 使用 top-of-range 匹配;上界来自 pmpaddr20,下界来自 pmpaddr19。

2NA4

PMP entry 20 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 20 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr20 的低位编码。

打开官方手册
34

pmp20cfg.X

读写

PMP 条目 20 的执行权限。

这个字段控制什么

  • - PMP 条目 20 的执行权限。

常见取值

pmp20cfg.X
0禁止执行

PMP entry 20 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 20 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
33

pmp20cfg.W

读写

PMP 条目 20 的写权限。

这个字段控制什么

  • - PMP 条目 20 的写权限。

常见取值

pmp20cfg.W
0禁止写

PMP entry 20 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 20 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
32

pmp20cfg.R

读写

PMP 条目 20 的读权限。

这个字段控制什么

  • - PMP 条目 20 的读权限。

常见取值

pmp20cfg.R
0禁止读

PMP entry 20 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 20 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
47

pmp21cfg.L

读写

PMP 条目 21 的锁定位。

这个字段控制什么

  • - PMP 条目 21 的锁定位。

常见取值

pmp21cfg.L
0未锁定

PMP entry 21 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr21 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 21 锁定;写入 pmp21cfg 和 pmpaddr21 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr20 也会被锁定。

打开官方手册
46:45

pmp21cfg.reserved

只读

PMP 条目 21 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 21 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
44:43

pmp21cfg.A

读写

PMP 条目 21 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 21 的地址匹配模式。

常见取值

pmp21cfg.A
0OFF

PMP entry 21 关闭,匹配空区域。

1TOR

PMP entry 21 使用 top-of-range 匹配;上界来自 pmpaddr21,下界来自 pmpaddr20。

2NA4

PMP entry 21 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 21 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr21 的低位编码。

打开官方手册
42

pmp21cfg.X

读写

PMP 条目 21 的执行权限。

这个字段控制什么

  • - PMP 条目 21 的执行权限。

常见取值

pmp21cfg.X
0禁止执行

PMP entry 21 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 21 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
41

pmp21cfg.W

读写

PMP 条目 21 的写权限。

这个字段控制什么

  • - PMP 条目 21 的写权限。

常见取值

pmp21cfg.W
0禁止写

PMP entry 21 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 21 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
40

pmp21cfg.R

读写

PMP 条目 21 的读权限。

这个字段控制什么

  • - PMP 条目 21 的读权限。

常见取值

pmp21cfg.R
0禁止读

PMP entry 21 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 21 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
55

pmp22cfg.L

读写

PMP 条目 22 的锁定位。

这个字段控制什么

  • - PMP 条目 22 的锁定位。

常见取值

pmp22cfg.L
0未锁定

PMP entry 22 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr22 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 22 锁定;写入 pmp22cfg 和 pmpaddr22 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr21 也会被锁定。

打开官方手册
54:53

pmp22cfg.reserved

只读

PMP 条目 22 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 22 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
52:51

pmp22cfg.A

读写

PMP 条目 22 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 22 的地址匹配模式。

常见取值

pmp22cfg.A
0OFF

PMP entry 22 关闭,匹配空区域。

1TOR

PMP entry 22 使用 top-of-range 匹配;上界来自 pmpaddr22,下界来自 pmpaddr21。

2NA4

PMP entry 22 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 22 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr22 的低位编码。

打开官方手册
50

pmp22cfg.X

读写

PMP 条目 22 的执行权限。

这个字段控制什么

  • - PMP 条目 22 的执行权限。

常见取值

pmp22cfg.X
0禁止执行

PMP entry 22 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 22 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
49

pmp22cfg.W

读写

PMP 条目 22 的写权限。

这个字段控制什么

  • - PMP 条目 22 的写权限。

常见取值

pmp22cfg.W
0禁止写

PMP entry 22 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 22 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
48

pmp22cfg.R

读写

PMP 条目 22 的读权限。

这个字段控制什么

  • - PMP 条目 22 的读权限。

常见取值

pmp22cfg.R
0禁止读

PMP entry 22 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 22 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
63

pmp23cfg.L

读写

PMP 条目 23 的锁定位。

这个字段控制什么

  • - PMP 条目 23 的锁定位。

常见取值

pmp23cfg.L
0未锁定

PMP entry 23 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr23 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 23 锁定;写入 pmp23cfg 和 pmpaddr23 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr22 也会被锁定。

打开官方手册
62:61

pmp23cfg.reserved

只读

PMP 条目 23 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 23 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
60:59

pmp23cfg.A

读写

PMP 条目 23 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 23 的地址匹配模式。

常见取值

pmp23cfg.A
0OFF

PMP entry 23 关闭,匹配空区域。

1TOR

PMP entry 23 使用 top-of-range 匹配;上界来自 pmpaddr23,下界来自 pmpaddr22。

2NA4

PMP entry 23 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 23 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr23 的低位编码。

打开官方手册
58

pmp23cfg.X

读写

PMP 条目 23 的执行权限。

这个字段控制什么

  • - PMP 条目 23 的执行权限。

常见取值

pmp23cfg.X
0禁止执行

PMP entry 23 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 23 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
57

pmp23cfg.W

读写

PMP 条目 23 的写权限。

这个字段控制什么

  • - PMP 条目 23 的写权限。

常见取值

pmp23cfg.W
0禁止写

PMP entry 23 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 23 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
56

pmp23cfg.R

读写

PMP 条目 23 的读权限。

这个字段控制什么

  • - PMP 条目 23 的读权限。

常见取值

pmp23cfg.R
0禁止读

PMP entry 23 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 23 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册

读这个 CSR 时先看什么

  • - 先确认当前 hart 是否实现 pmpcfg4,未实现或权限不足的访问会触发非法指令异常。
  • - 结合地址 0x3A4 和最低访问特权级(Machine 模式)判断软件是否可以直接读取。
  • - 读取保留位或 WARL/WLRL 位时不要假设固定值,应按规范和实现返回值解释。

写入前的风险检查

  • - 写入前保留未修改的位,避免把保留位或实现定义位写成非规范值。
  • - 优先使用 CSRRS/CSRRC 做局部置位或清位,避免 CSRRW 覆盖并发更新的状态位。

放回真实流程里理解

1

初始化或进入相关特权流程时,软件先读取 pmpcfg4 了解当前状态。

2

根据字段定义只修改目标位,保留其余位的原值。

3

修改后再次读取或通过后续 trap/中断/上下文切换行为验证配置是否生效。