pin_mux_tool 管脚复用配置工具
pin_mux_tool — Windows 图形化工具,用于 Hi3516CV610 管脚复用(IOCFG 寄存器)配置:可视化编辑引脚的复用功能、驱动能力、上下拉与输入使能,实时计算寄存器十六进制值,并一键导出 board-io-cfg skill 可直接使用的 xlsx 配置表。
工具获取
工具位于项目 tools/pin_mux_tool/ 目录:
双击 Hi3516 Config Tool.exe 运行,无需安装。
功能说明
| 功能 | 说明 |
|---|---|
| 可视化引脚图谱 | 高亮展示当前编辑、已分配及未分配的管脚,按功能用彩色标签区分 |
| 实时寄存器计算 | 更改复用、上下拉、驱动、速率选项后,自动实时计算 IOCFG 寄存器十六进制值(如 0x1205、0x1101) |
| 导入寄存器脚本 | 将 bspmd 寄存器写入命令批量粘贴,自动逆向解析出各引脚的复用状态、驱动档位、上下拉状态 |
| 导出 xlsx 配置表 | 8 列标准格式(Pin、GPIO_Number、Function_Name、Pull、Drive、Slew、Input_Enable、Init_Level),可直接用于 board-io-cfg skill 生成 dtsi 和内核模块 |
| 导出调试脚本 | 生成标准 .sh 脚本,拷贝到开发板运行可实现引脚热重载 |
寄存器控制位
Hi3516CV610 每个引脚由一个 32 位 IOCFG 寄存器控制:
| 位域 | 功能 | 取值 |
|---|---|---|
| Bit [3:0] | 复用功能选择(MUX) | 0x0 ~ 0xF:对应不同复用功能(如 GPIO、I2C、UART、MIPI) |
| Bit [7:4] | 驱动能力(DRV) | 按引脚驱动强度类型匹配档位,如 I02:I02_档位4 (0x0) ~ I02_档位1 (0x3) |
| Bit [8] | 上拉(PU) | 0x0 关闭,0x1 开启 |
| Bit [9] | 下拉(PD) | 0x0 关闭,0x1 开启 |
| Bit [10] | 电平转换速率(SR) | 0x0 快沿,0x1 慢沿 |
| Bit [12] | 输入使能(IE) | 所有引脚硬件默认均为 1,写入时始终置位 |
操作指南
- 打开应用,点击顶部 应用预设模板,载入包含 JTAG、UART0、SDIO、I2C、MIPI 摄像头等标准外设的管脚复用规则
- 在中间引脚列表点击目标引脚,右侧抽屉中修改复用功能、上下拉、驱动能力、输出速率,寄存器值瞬间更新
- 已有寄存器脚本时,点击左侧 导入配置脚本,粘贴
bspmd 0x... 32命令并点击 解析并导入,自动还原各引脚状态 - 配置完成后,点击 导出 xlsx 文档 或 导出调试脚本;也可在右侧抽屉或左侧面板一键复制所有已修改引脚的 Shell 配置
引脚上下拉互斥:选择上拉时下拉自动取消;在抽屉中点击 恢复默认值 可将引脚重置为出厂状态。
与 board-io-cfg skill 集成
工具导出的 xlsx 配置表可直接与项目中的 board-io-cfg skill 配合使用,实现从配置到系统镜像的全自动化:
pin_mux_tool 导出 xlsx
│
▼
board-io-cfg skill 一键脚本(gen_all.sh)
│
├── xlsx_to_dtsi.py → board_io_config.dtsi(编入 uImage)
└── make → board_io_cfg.ko(打包进 rootfs)
│
▼
重新编译系统镜像 → 烧录 → insmod 验证
使用步骤:
# 1. 将导出的 xlsx 复制到 board-io-cfg skill 目录
cp 导出的文件.xlsx .agents/skills/board-io-cfg/references/cv610_gpio.xlsx
# 2. 运行一键脚本
bash .agents/skills/board-io-cfg/scripts/gen_all.sh
# 3. 删除旧 uImage,重新编译系统镜像
rm -f _build/install/image/gui/uImage
bash scripts/build.sh build --target cv610_ev_board samples gui/circle_lcd_video_ui
# 4. 烧录到开发板,加载模块验证
insmod /drv/ko/ot_board_io_cfg.ko
dmesg | grep board_io_cfg
FAQ
| 问题 | 说明 |
|---|---|
| 如何将导出的 xlsx 应用到系统镜像中 | 替换 references/cv610_gpio.xlsx 后运行 gen_all.sh,见上节集成步骤 |