跳转至

寄存器定义模板

使用此模板创建新的寄存器定义文档


1. 寄存器信息

属性
寄存器名称 [REGISTER_NAME]
寄存器简称 [REG_SHORT]
偏移地址 0x[OFFSET]
绝对地址 0x[BASE] + 0x[OFFSET]
复位值 0x[RESET_VALUE]
访问权限 R/W / R / W / RC / W1C
所属模块 [模块名称]
位宽 32 位

2. 位域定义

2.1 位域总览

1
2
3
4
5
 31                                  16 15                                   0
+--------------------------------------+--------------------------------------+
|           RESERVED                   |            [FIELD_NAME]              |
|                                      |                                      |
+--------------------------------------+--------------------------------------+

2.2 详细位定义

位域 名称 位宽 读写 复位值 描述
31:16 RESERVED 16 R 0x0000 保留位
15:8 [FIELD_A] 8 R/W 0x00 [字段 A 描述]
7:4 [FIELD_B] 4 R/W 0x0 [字段 B 描述]
3 [FIELD_C] 1 R/W 0 [字段 C 描述]
2:0 RESERVED 3 R 0x0 保留位

3. 字段详细说明

3.1 [FIELD_A] - [字段名称]

位宽: 8 位
位置: [15:8]
访问类型: R/W
复位值: 0x00

3.1.1 字段定义

名称 描述
0x00 MODE_IDLE 空闲模式
0x01 MODE_ACTIVE 激活模式
0x02 MODE_SLEEP 睡眠模式
0x03-0xFF RESERVED 保留

3.1.2 使用示例

1
2
3
4
5
// 设置为激活模式
REG_WRITE(BASE_ADDR + 0x[OFFSET], 0x01 << 8);

// 读取当前模式
uint32_t mode = (REG_READ(BASE_ADDR + 0x[OFFSET]) >> 8) & 0xFF;

3.2 [FIELD_B] - [字段名称]

位宽: 4 位
位置: [7:4]
访问类型: R/W
复位值: 0x0

3.2.1 字段定义

描述
0x0 默认配置
0x1-F 保留

3.3 [FIELD_C] - [字段名称]

位宽: 1 位
位置: [3]
访问类型: R/W
复位值: 0

描述
0 禁用功能
1 启用功能

4. 访问时序

4.1 读操作时序

1
2
3
周期 1: PADDR = 0x[OFFSET], PSEL = 1, PENABLE = 0
周期 2: PENABLE = 1
周期 3: PRDATA = 寄存器值,PREADY = 1

4.2 写操作时序

1
2
3
周期 1: PADDR = 0x[OFFSET], PWDATA = 数据,PSEL = 1, PENABLE = 0
周期 2: PENABLE = 1
周期 3: PREADY = 1,数据锁存

4.3 时序图

timing:
    signal clk
    signal PADDR
    signal PWDATA
    signal PRDATA
    signal PSEL
    signal PENABLE
    signal PREADY

    over 0-1: "读操作"
    over 3-4: "写操作"

5. 使用场景

5.1 初始化配置

1
2
3
4
5
6
7
void [module]_init(void) {
    // 配置 FIELD_A 为激活模式
    REG_WRITE(BASE + 0x[OFFSET], 0x01 << 8);

    // 启用 FIELD_C 功能
    REG_SET_BIT(BASE + 0x[OFFSET], 3);
}

5.2 运行时访问

1
2
3
4
5
// 读取状态
uint32_t status = REG_READ(BASE + 0x[OFFSET]);

// 修改特定字段
REG_MODIFY_BITS(BASE + 0x[OFFSET], 0xFF << 8, new_value << 8);

6. 注意事项

6.1 访问限制

  • ⚠️ 保留位必须写 0 - 写保留位可能导致未定义行为
  • ⚠️ 某些位需要特定序列 - [描述特殊访问要求]
  • ⚠️ 原子操作要求 - [描述原子性要求]

6.2 复位行为

  • 异步复位后,寄存器值为 0x[RESET_VALUE]
  • 某些位可能在特定条件下自动清零

6.3 中断相关

  • [描述与中断相关的行为]

7. 相关寄存器

寄存器 偏移 描述
[REG_A] 0x00 相关寄存器 A
[REG_B] 0x04 相关寄存器 B

8. 修订历史

版本 日期 作者 变更描述
0.1 YYYY-MM-DD [作者] 初始版本
1.0 YYYY-MM-DD [作者] 正式发布

9. 参考文档


模板版本:1.0 | 最后更新:2026-05-03