当前位置: 首页 > article >正文

芯片配置文件自动化生成

代码的主要功能是将设置了芯片寄存器的Excel表格(.xls或.xlsx)中的特定工作表的数据转换成SVD格式。

步骤

Excel文件读取

  1. 使用xlrd库打开Excel文件
  2. 处理.xls格式的特殊情况(formatting_info=True)
  3. 获取"global"工作表数据

栈结构实现

  1. 定义Stack类实现栈数据结构
  2. 支持push/pop/peek等基本操作
  3. 用于管理XML节点层级关系

XML文档初始化

  1. 创建根节点
  2. 使用xml.dom.minidom构建DOM树

核心转换逻辑

python
for i in range(nrows):  # 遍历所有行row_values = 获取当前行数据cell_value = 获取首个非空单元格值if 包含'<'标签:  # XML节点处理if 是开始标签:  # 如<registers>创建新节点并入栈if 特殊标签'registers':查找对应结束标签位置循环处理寄存器子节点else:  # 结束标签弹出栈顶节点else:  # 普通数据节点创建文本节点并添加到当前栈顶元素

寄存器特殊处理

当检测到标签时:

  • 计算寄存器条目数量(rows_flag)
  • 为每个寄存器创建节点
  • 添加5个属性子节点
  • 固定添加和节点

输出保存

使用tempfile获取系统临时目录
美化输出XML格式(toprettyxml())
保存输出

实现了从Excel到XML的转换,使用栈管理XML层级关系。

http://www.lryc.cn/news/2393327.html

相关文章:

  • 新能源汽车与油车销量
  • LVS-DR 负载均衡集群
  • 基于Java,SpringBoot,Vue,UniAPP宠物洗护医疗喂养预约服务商城小程序管理系统设计
  • 中车靶场,网络安全暑期实训营
  • 2.2.2 06年T1
  • split_conversion将json转成yolo训练用的txt,在直接按照8:1:1的比例分成训练集,测试集,验证集
  • 响应式系统与Spring Boot响应式应用开发
  • 【第1章 基础知识】1.8 在 Canvas 中使用 HTML 元素
  • c++流之sstream/堆or优先队列的应用[1]
  • SAR ADC 比较器噪声分析(二)
  • c#与java的相同点和不同点
  • phpmyadmin
  • 机器学习Day5-模型诊断
  • 如何将 WSL 的 Ubuntu-24.04 迁移到其他电脑
  • 金融欺诈有哪些检测手段
  • HTML5 全面知识点总结
  • vscode一直连接不上虚拟机或者虚拟机容器怎么办?
  • 初学c语言21(文件操作)
  • 数学复习笔记 21
  • 华为OD机试真题——数据分类(2025B卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • JavaWeb开发基础Servlet生命周期与工作原理
  • 三防平板科普:有什么特殊功能?应用在什么场景?
  • 百度外链生态的优劣解构与优化策略深度研究
  • 笔记: 在WPF中ContentElement 和 UIElement 的主要区别
  • 项目中使用到了多个UI组件库,也使用了Tailwindcss,如何确保新开发的组件样式隔离?
  • AI提示工程(Prompt Engineering)高级技巧详解
  • 【速写】PPOTrainer样例与错误思考(少量DAPO)
  • 5.26 面经整理 360共有云 golang
  • 中国移动咪咕助力第五届全国人工智能大赛“AI+数智创新”专项赛道开展
  • 模具制造业数字化转型:精密模塑,以数字之力铸就制造基石