with one click
with one click
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | rebuild-library |
| description | 重新生成 ic_psd3/library,从 XML 和 AVES 脚本生成 auto_class 和 aves_class |
| license | MIT |
| compatibility | opencode |
| metadata | {"author":"yfzhao","version":"2.0.0"} |
从芯片 XML 寄存器描述和 AVES 脚本生成两个 Python 类文件:
工作流程:清空 library → 解析 XML → 解析 AVES → 生成两个类
收集必要的输入信息。通常使用默认路径,但用户可以指定自己的路径。
默认路径:
ic_psd3/import/GSU1K1_NTO.xmlic_psd3/import/gsu1001_2025_nto_scripts.txt向用户提问:
1️⃣ XML 寄存器定义文件路径?
(默认:ic_psd3/import/GSU1K1_NTO.xml)
按 Enter 使用默认值,或输入自己的路径
2️⃣ AVES 脚本文件路径?
(默认:ic_psd3/import/gsu1001_2025_nto_scripts.txt)
按 Enter 使用默认值,或输入自己的路径
执行清理:
cd ic_psd3
rm -rf library/*
向用户说明:
✅ 已清空 ic_psd3/library/ 目录,准备重新生成...
使用 unified_generator 处理 XML 文件,生成两个文件:
cd ic_psd3
python -m src.psd_bridge.unified_generator <XML_FILE_PATH>
执行后,检查输出:
ic_psd3/library/auto_class.py - IDE 自动补全类ic_psd3/library/reg_define.py - PAGE 地址常量定义向用户说明:
✅ auto_class.py 生成成功
- 用途:IDE 自动补全,快速查找寄存器
- 结构:嵌套类 AutoClass.PAGE.register
- 大小:约 2.3 MB(包含所有寄存器定义)
示例用法:
from library.auto_class import AutoClass
AutoClass.PAGE0.REG_NAME.r() # 读寄存器
AutoClass.PAGE0.REG_NAME.w(0xFF) # 写寄存器
✅ reg_define.py 生成成功
- 用途:PAGE 地址常量定义
- 内容:所有 38 个 PAGE 的 I2C 地址(如 AG=0x06)
- 大小:约 3 KB
示例用法:
from library.reg_define import AG, AnaPll, CdrDp1
device.read_reg(AG, 0x00) # 使用常量读寄存器
使用 aves_converter 处理 AVES 脚本:
cd ic_psd3
python -m src.psd_bridge.aves_converter <AVES_FILE_PATH>
执行后,检查输出:
ic_psd3/library/aves_class.py向用户说明:
✅ aves_class.py 生成成功
- 用途:AVES 脚本转换为 Python,支持 DeviceManager
- 结构:AVESChipConfig 类,包含初始化方法
- 集成:与 hw_bridge DeviceManager 无缝配合
示例用法:
from library.aves_class import AVESChipConfig
config = AVESChipConfig(device_manager)
config.initialize()
显示生成结果:
ls -lh ic_psd3/library/*.py
最终总结:
✅ library 重新生成完成!
生成的文件:
📄 auto_class.py (2.3 MB - IDE 自动补全)
📄 reg_define.py (3 KB - PAGE 地址常量)
📄 aves_class.py (241 KB - AVES 配置脚本)
验证方法:
1. import library.auto_class - 检查 IDE 补全
2. import library.reg_define - 检查 PAGE 常量
3. import library.aves_class - 检查语法正确性
后续步骤:
- 使用 auto_class.py 在 IDE 中编写配置脚本
- 使用 reg_define.py 中的常量访问寄存器
- 使用 aves_class.py 运行 AVES 初始化流程
用户: 重新生成 library
AI: 我来帮你重新生成 ic_psd3/library。
首先需要确认两个输入文件的位置:
XML 寄存器定义文件 - 芯片寄存器描述 (通常:ic_psd3/import/GSU1K1_NTO.xml)
AVES 脚本文件 - AVES 初始化脚本 (通常:ic_psd3/import/gsu1001_2025_nto_scripts.txt)
请确认这两个文件的路径。
用户: ic_psd3/import/GSU1K1_NTO.xml 和 ic_psd3/import/gsu1001_2025_nto_scripts.txt
AI: [执行步骤 2 - 清空 library] ✅ library 目录已清空
[执行步骤 3 - 生成 auto_class.py 和 reg_define.py] 正在处理 XML 文件... ✅ auto_class.py 生成成功
✅ reg_define.py 生成成功
[执行步骤 4 - 生成 aves_class.py] 正在处理 AVES 脚本... ✅ aves_class.py 生成成功
[执行步骤 5 - 显示总结] ✅ library 重新生成完成!
生成的文件: 📄 auto_class.py (2.3 MB) 📄 reg_define.py (3 KB) 📄 aves_class.py (125 KB)
现在你可以:
# 仅生成 AutoClass 和 reg_define(XML -> auto_class.py + reg_define.py)
python -m src.psd_bridge.unified_generator <XML_FILE>
# 示例
python -m src.psd_bridge.unified_generator ic_psd3/import/GSU1K1_NTO.xml
参数:
<XML_FILE> - XML 寄存器定义文件路径输出:
ic_psd3/library/auto_class.py - IDE 补全类ic_psd3/library/reg_define.py - PAGE 地址常量定义# AVES 脚本转换(AVES -> aves_class.py)
python -m src.psd_bridge.aves_converter <AVES_FILE>
# 示例
python -m src.psd_bridge.aves_converter ic_psd3/import/gsu1001_2025_nto_scripts.txt
参数:
<AVES_FILE> - AVES 脚本文件路径输出:
ic_psd3/library/aves_class.py - AVES 转换的 Python 类Q: 如果 XML 或 AVES 文件不存在怎么办?
A: 会显示错误信息并停止。请检查文件路径是否正确。
Q: 生成的文件格式是什么?
A: 都是标准 Python 文件(.py),可直接导入使用。
Q: 需要多久生成?
A: 通常 < 5 秒(取决于文件大小)
Q: 可以手动修改生成的文件吗?
A: 可以,但下次重新生成会被覆盖。建议在生成后进行修改。
from library.auto_class import AutoClass
# 在 IDE 中输入会自动补全
AutoClass.PAGE0.REG_NAME.r() # 读寄存器
AutoClass.PAGE0.REG_NAME.w(0xFF) # 写寄存器
from library.reg_define import AG, AnaPll, CdrDp1, Misc
# 使用常量访问寄存器
device.read_reg(AG, 0x00) # 读 AG page
device.write_reg(AnaPll, 0x10) # 写 AnaPll page
from library.aves_class import AVESChipConfig
from src.hw_bridge.device_manager import DeviceManager
# 创建设备管理器
dm = DeviceManager(config_file="config.yaml")
# 使用 AVES 配置
config = AVESChipConfig(dm)
config.initialize()
版本: 2.0.0 | 作者: yfzhao | 最后更新: 2026-02-12