# cherry-descriptor **Repository Path**: fhcloud/cherry-descriptor ## Basic Information - **Project Name**: cherry-descriptor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-18 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cherry Descriptor CherryUSB 描述符可视化生成器。 用于在网页中配置 USB 设备描述符/字符串描述符/配置描述符,并实时生成 CherryUSB 风格的 C 代码。 [![Protocol Stack](https://img.shields.io/badge/Protocol%20Stack-CherryUSB-0ea5e9)](https://github.com/cherry-embedded/CherryUSB) [![USB](https://img.shields.io/badge/USB-2.0%2F2.1-22c55e)](#功能特性) [![Frontend](https://img.shields.io/badge/Frontend-Vue%203%20%2B%20Element%20Plus-6366f1)](#技术栈) > 当前代码生成规则基于 [CherryUSB](https://github.com/cherry-embedded/CherryUSB) 宏风格。 ## 功能特性 - 设备描述符生成 - `USB_DEVICE_DESCRIPTOR_INIT(...)` - `device_quality_descriptor` 生成 - `bNumConfigurations` 支持自动计算 - 字符串描述符管理 - `USBD_LANGID_STRING` 配置(支持十进制/十六进制输入) - `string_descriptors[]` 生成 - 内置前三项(Manufacturer/Product/Serial Number)不可删除 - 配置描述符管理(支持多个 Configuration) - `bConfigurationValue` 自动递增 - `bNumInterfaces` 自动计算 - `bmAttributes` 中 `BUS_POWERED / SELF_POWERED` 互斥(单选)+ `REMOTE_WAKEUP` 独立开关 - Class 描述符生成(每个配置下可添加多个) - `CDC ACM` - `MSC` - `CDC RNDIS` - `CDC ECM` - 复合设备支持 - 多配置 + 多 class - class 顺序可上移/下移,生成代码顺序同步变化 - 支持 class 里选择字符串索引(`str_idx` / `iInterface` / `MAC String Index`) - 代码预览增强 - `highlight.js` 语法高亮(C) - 一键复制生成代码 ## 技术栈 - Vue 3 - Vite - TypeScript - Element Plus - highlight.js - Pinia / Vue Router ## 快速开始 ### 环境要求 - Node.js: `^20.19.0 || >=22.12.0` - pnpm: 建议 `v10+` ### 安装依赖 ```bash pnpm install ``` ### 启动开发环境 ```bash pnpm dev ``` 默认地址:`http://localhost:5173` ### 构建 ```bash pnpm build ``` ### 预览构建产物 ```bash pnpm preview ``` ### 代码检查与格式化 ```bash pnpm lint pnpm format ``` ## 使用说明 1. 在“设备描述符”中配置基础信息(VID/PID、USB 版本、设备类等)。 2. 在“字符串描述符”中维护语言 ID 与字符串内容。 3. 在“配置描述符列表”中添加配置,并为每个配置添加 class(CDC/MSC/RNDIS/ECM)。 4. 在右侧查看实时生成代码,确认后点击“复制代码”。 ## 代码结构 ```text src/ views/ HomeView.vue # 页面状态与代码生成主逻辑 components/descriptors/ DeviceDescriptorCard.vue # 设备描述符配置 StringDescriptorsCard.vue # 字符串描述符配置 ConfigurationsCard.vue # 配置/class 配置 CodePreviewCard.vue # 代码高亮预览与复制 types/ descriptors.ts # 描述符相关类型定义 ``` ## 说明 - 本项目目标是提升 CherryUSB 描述符配置效率,生成代码以 CherryUSB demo 风格为参考。 - 生成结果建议结合目标固件工程的实际宏定义与类驱动源码做最终校验。