Skip to main content

rebuild-library

重新生成 ic_psd3/library,从 XML 和 AVES 脚本生成 auto_class 和 aves_class

Informations de source

Dépôt
zhaoyifei100-crypto/ic_psd_flow
Dernière activité de la source
12 février 2026 à 14:59
Langue détectée de SKILL.md
chinois
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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 类文件: 1. **auto_class.py** - 用于设计师在 IDE 中快速查找和自动补全寄存器 2. **aves_class.py** - 从 AVES 脚本生成的 Python 基础类,支持 DeviceManager **工作流程**:清空 library → 解析 XML → 解析 AVES → 生成两个类 --- ## 工作流程 ### 步骤 1:确认输入文件 收集必要的输入信息。通常使用默认路径,但用户可以指定自己的路径。 **默认路径:** - XML 文件:`ic_psd3/import/GSU1K1_NTO.xml` - AVES 脚本:`ic_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 使用默认值,或输入自己的路径 ``` ### 步骤 2:清空 library 目录 执行清理: ```bash cd ic_psd3 rm -rf library/* ``` 向用户说明: ``` ✅ 已清空 ic_psd3/library/ 目录,准备重新生成... ``` ### 步骤 3:生成 auto_class.py 和 reg_define.py 使用 unified_generator 处理 XML 文件,生成两个文件: ```bash cd ic_psd3 python -m src.psd_bridge.unified_generator <XML_FILE_PATH> ``` 执行后,检查输出: - 生成文件 1:`ic_psd3/library/auto_class.py` - IDE 自动补全类 - 生成文件 2:`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) # 使用常量读寄存器 ``` ### 步骤 4:生成 aves_class.py 使用 aves_converter 处理 AVES 脚本: ```bash 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() ``` ### 步骤 5:完成总结 显示生成结果: ```bash 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。 首先需要确认两个输入文件的位置: 1. **XML 寄存器定义文件** - 芯片寄存器描述 (通常:ic_psd3/import/GSU1K1_NTO.xml) 2. **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 生成成功 - 38 个 PAGE - 7,136 个寄存器 - 文件大小:2.3 MB ✅ reg_define.py 生成成功 - 38 个 PAGE 常量定义 - 文件大小:3 KB [执行步骤 4 - 生成 aves_class.py] 正在处理 AVES 脚本... ✅ aves_class.py 生成成功 - 转换了 245 条初始化命令 - 文件大小:125 KB [执行步骤 5 - 显示总结] ✅ library 重新生成完成! 生成的文件: 📄 auto_class.py (2.3 MB) 📄 reg_define.py (3 KB) 📄 aves_class.py (125 KB) 现在你可以: 1. 在 IDE 中使用 auto_class.py 进行自动补全 2. 使用 reg_define.py 中的常量访问寄存器 3. 运行 aves_class.py 中的 AVESChipConfig 类 --- ## 命令参考 ### unified_generator - 生成 auto_class.py 和 reg_define.py ```bash # 仅生成 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_converter - 生成 aves_class.py ```bash # 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: 可以,但下次重新生成会被覆盖。建议在生成后进行修改。 --- ## 后续操作 ### 使用 auto_class.py ```python from library.auto_class import AutoClass # 在 IDE 中输入会自动补全 AutoClass.PAGE0.REG_NAME.r() # 读寄存器 AutoClass.PAGE0.REG_NAME.w(0xFF) # 写寄存器 ``` ### 使用 reg_define.py ```python from library.reg_define import AG, AnaPll, CdrDp1, Misc # 使用常量访问寄存器 device.read_reg(AG, 0x00) # 读 AG page device.write_reg(AnaPll, 0x10) # 写 AnaPll page ``` ### 使用 aves_class.py ```python 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
Voir sur GitHub