寄存器定义模板
使用此模板创建新的寄存器定义文档
1. 寄存器信息
| 属性 | 值 |
| 寄存器名称 | [REGISTER_NAME] |
| 寄存器简称 | [REG_SHORT] |
| 偏移地址 | 0x[OFFSET] |
| 绝对地址 | 0x[BASE] + 0x[OFFSET] |
| 复位值 | 0x[RESET_VALUE] |
| 访问权限 | R/W / R / W / RC / W1C |
| 所属模块 | [模块名称] |
| 位宽 | 32 位 |
2. 位域定义
2.1 位域总览
| 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 使用示例
| // 设置为激活模式
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 字段定义
3.3 [FIELD_C] - [字段名称]
位宽: 1 位
位置: [3]
访问类型: R/W
复位值: 0
4. 访问时序
4.1 读操作时序
| 周期 1: PADDR = 0x[OFFSET], PSEL = 1, PENABLE = 0
周期 2: PENABLE = 1
周期 3: PRDATA = 寄存器值,PREADY = 1
|
4.2 写操作时序
| 周期 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 初始化配置
| void [module]_init(void) {
// 配置 FIELD_A 为激活模式
REG_WRITE(BASE + 0x[OFFSET], 0x01 << 8);
// 启用 FIELD_C 功能
REG_SET_BIT(BASE + 0x[OFFSET], 3);
}
|
5.2 运行时访问
| // 读取状态
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