377 lines
21 KiB
JSON
377 lines
21 KiB
JSON
{
|
||
"docs": {
|
||
"riscv": {
|
||
"label": "// risc-v",
|
||
"heading": "RISC-V 仿真 (ESP32-C3)",
|
||
"lead": "ESP32-C3、XIAO ESP32-C3 和 C3 SuperMini 开发板运行在 <strong>RISC-V RV32IMC</strong> 架构上,主频 160 MHz。Velxio 通过与 Xtensa ESP32 系列相同的基于 QEMU 的后端来仿真它们,使用 <code>libqemu-riscv32</code> 和 <code>esp32c3-picsimlab</code> 机器目标。仓库中有一个独立的 TypeScript ISA 实现,用于单元测试 RV32IMC 指令解码,但它不是生产仿真路径。",
|
||
"boardsHeading": "支持的开发板",
|
||
"boardEsp32C3": "ESP32-C3 DevKit",
|
||
"boardXiaoC3": "Seeed XIAO ESP32-C3",
|
||
"boardC3Super": "ESP32-C3 SuperMini",
|
||
"altEsp32C3": "ESP32-C3 DevKit",
|
||
"altXiaoC3": "Seeed XIAO ESP32-C3",
|
||
"altC3Super": "ESP32-C3 SuperMini",
|
||
"thBoard": "开发板",
|
||
"thCpu": "CPU",
|
||
"thFlash": "闪存",
|
||
"thRam": "RAM",
|
||
"boardEsp32C3Name": "ESP32-C3",
|
||
"boardXiaoC3Name": "XIAO ESP32-C3",
|
||
"boardC3SuperName": "C3 SuperMini",
|
||
"cpuValue": "RV32IMC @ 160 MHz",
|
||
"flashValue": "4 MB",
|
||
"ramValue": "384 KB DRAM",
|
||
"memoryHeading": "内存映射",
|
||
"thRegion": "区域",
|
||
"thBaseAddr": "基地址",
|
||
"thSize": "大小",
|
||
"thDescription": "描述",
|
||
"regIrom": "IROM (闪存)",
|
||
"regIromDesc": "存储在闪存中的代码",
|
||
"regDrom": "DROM (闪存只读)",
|
||
"regDromDesc": "闪存中的只读数据",
|
||
"regDram": "DRAM",
|
||
"regDramDesc": "数据 RAM (栈 + 堆)",
|
||
"regIram": "IRAM",
|
||
"regIramDesc": "指令 RAM (从闪存复制)",
|
||
"regUart": "UART0",
|
||
"regUartDesc": "串口 0 (GPIO 20/21)",
|
||
"regGpio": "GPIO",
|
||
"regGpioDesc": "GPIO 输出/输入/使能",
|
||
"size4mb": "4 MB",
|
||
"size384kb": "384 KB",
|
||
"size1kb": "1 KB",
|
||
"size512b": "512 B",
|
||
"isaHeading": "ISA 支持",
|
||
"isaRv32i": "<strong>RV32I</strong>: 完整的基础整数指令集 (ALU、加载/存储、分支、JAL/JALR)",
|
||
"isaRv32m": "<strong>RV32M</strong>: 乘除法: MUL, MULH, MULHSU, MULHU, DIV, DIVU, REM, REMU",
|
||
"isaRv32c": "<strong>RV32C</strong>: 16 位压缩指令: C.LI, C.ADDI, C.LUI, C.J, C.JAL, C.BEQZ, C.BNEZ, C.MV, C.ADD, C.JR, C.JALR, C.LW, C.SW, C.LWSP, C.SWSP, C.SLLI, C.ADDI4SPN",
|
||
"compileFlowHeading": "编译流程",
|
||
"compileFlowLead": "当您为 ESP32-C3 开发板点击 <strong>编译并运行</strong> 时:",
|
||
"compileStep1": "后端使用 <code>arduino-cli</code> 和 <code>esp32:esp32</code> 核心编译您的草图。",
|
||
"compileStep2": "生成的二进制文件是一个 <strong>合并的 4 MB 闪存映像</strong>:引导加载程序位于 <code>0x1000</code>,分区表位于 <code>0x8000</code>,应用程序位于 <code>0x10000</code>。",
|
||
"compileStep3": "前端的 <code>esp32ImageParser.ts</code> 在偏移量 <code>0x10000</code> 处找到应用程序,读取 24 字节的 ESP32 映像头 (魔术字 <code>0xE9</code>),并提取所有段 (加载地址 + 数据)。",
|
||
"compileStep4": "每个段被写入 <code>Esp32C3Simulator</code> 的正确内存区域 (IROM、DROM、DRAM 或 IRAM)。",
|
||
"compileStep5": "CPU 从映像头中指定的入口点开始执行。",
|
||
"gpioHeading": "GPIO 寄存器",
|
||
"thRegister": "寄存器",
|
||
"thOffset": "偏移量",
|
||
"regOutDesc": "当前输出值",
|
||
"regW1tsDesc": "置位位 (写 1 置位)",
|
||
"regW1tcDesc": "清零位 (写 1 清零)",
|
||
"regEnableDesc": "输出使能",
|
||
"regInDesc": "输入引脚状态",
|
||
"uart0Heading": "UART0",
|
||
"uart0Body": "向 <code>0x60000000</code> (UART0 FIFO) 写入一个字节会触发 <code>onSerialData</code> 回调,该回调将字符流式传输到串口监视器。从同一地址读取会从接收 FIFO 中弹出 (由 <code>Serial.read()</code> 使用)。UART 状态寄存器始终返回 0 (TX 就绪)。",
|
||
"sourceFilesHeading": "关键源文件",
|
||
"thFile": "文件",
|
||
"thRole": "角色",
|
||
"fileRiscVCoreDesc": "RV32IMC 解释器 (step, MMIO 钩子)",
|
||
"fileEsp32C3SimDesc": "ESP32-C3 外设、内存映射、生命周期",
|
||
"fileImageParserDesc": "解析合并的闪存映像,提取段",
|
||
"fullDetailsCallout": "<strong>完整详情:</strong> 仓库中的 <a>docs/RISCV_EMULATION.md</a>。"
|
||
},
|
||
"setup": {
|
||
"label": "// 项目状态",
|
||
"heading": "项目状态",
|
||
"lead": "Velxio 中当前实现的所有功能的全面概述。",
|
||
"avrHeading": "AVR 仿真 (avr8js)",
|
||
"thFeature": "功能",
|
||
"thStatus": "状态",
|
||
"statWorking": "工作中",
|
||
"featAtmega": "ATmega328p CPU @ 16 MHz",
|
||
"featTimers": "Timer0, Timer1, Timer2",
|
||
"featUsart": "USART (串口)",
|
||
"featAdc": "ADC (<code>analogRead</code>)",
|
||
"featGpio": "完整 GPIO (PORTB / PORTC / PORTD)",
|
||
"feat60fps": "~60 FPS 循环 (267k 周期/帧)",
|
||
"featSpeed": "速度控制 (0.1x - 10x)",
|
||
"featPwm": "PWM 监控 (6 通道)",
|
||
"featInjection": "外部引脚注入 (输入)",
|
||
"compSysHeading": "组件系统 (48+)",
|
||
"featAst": "通过 AST 自动发现",
|
||
"statAstDetected": "检测到 48 个组件",
|
||
"featPicker": "带搜索的 ComponentPickerModal",
|
||
"featCategories": "9 个类别,带筛选器",
|
||
"featDynRender": "通用 DynamicComponent 渲染器",
|
||
"featDnd": "画布上的拖放",
|
||
"featRotation": "旋转 (90 度增量)",
|
||
"featPropsDialog": "属性对话框 (单击)",
|
||
"featPinOverlay": "引脚覆盖层 (可点击的青色圆点)",
|
||
"partsHeading": "交互式部件 (16 个已仿真)",
|
||
"thPart": "部件",
|
||
"thType": "类型",
|
||
"partLed": "LED",
|
||
"partRgb": "RGB LED",
|
||
"partLedBar": "LED 条形图 (10 个 LED)",
|
||
"part7Seg": "7 段数码管",
|
||
"partPushButton": "按钮",
|
||
"partPushButton6": "6mm 按钮",
|
||
"partSlide": "滑动开关",
|
||
"partDipSwitch": "8 位 DIP 开关",
|
||
"partPot": "电位器",
|
||
"partSlidePot": "滑动电位器",
|
||
"partPhoto": "光敏电阻",
|
||
"partJoystick": "模拟摇杆",
|
||
"partServo": "舵机",
|
||
"partBuzzer": "蜂鸣器",
|
||
"partLcd1602": "LCD 1602",
|
||
"partLcd2004": "LCD 2004",
|
||
"typeOutput": "输出",
|
||
"typeOutputDigPwm": "输出 (数字 + PWM)",
|
||
"typeInput": "输入",
|
||
"typeInputAdc": "输入 (ADC)",
|
||
"typeInputAdcDigital": "输入 (ADC + 数字)",
|
||
"typeInputOutput": "输入/输出",
|
||
"typeOutputAudio": "输出 (Web Audio)",
|
||
"typeOutputHd44780": "输出 (完整 HD44780)",
|
||
"wireHeading": "导线系统",
|
||
"featPinClick": "通过点击创建引脚到引脚连接",
|
||
"featPreview": "实时预览 (绿色虚线)",
|
||
"featOrtho": "正交布线 (无对角线)",
|
||
"featSegEdit": "线段编辑 (垂直拖动)",
|
||
"feat8Colors": "8 种颜色,按信号类型区分",
|
||
"featAutoUpdate": "移动组件时自动更新",
|
||
"featSnap": "网格吸附 (20 像素)",
|
||
"featSelDel": "导线选择和删除",
|
||
"examplesHeading": "示例项目 (8 个)",
|
||
"thExample": "示例",
|
||
"thDifficulty": "难度",
|
||
"exBlink": "闪烁 LED",
|
||
"exTraffic": "交通灯",
|
||
"exButton": "按钮控制",
|
||
"exFade": "LED 渐亮 (PWM)",
|
||
"exSerial": "串口 Hello World",
|
||
"exRgbColors": "RGB LED 颜色",
|
||
"exSimon": "西蒙游戏",
|
||
"exLcd": "LCD 20x4 显示屏",
|
||
"catBasics": "基础",
|
||
"catComm": "通信",
|
||
"catGames": "游戏",
|
||
"catDisplaysCat": "显示",
|
||
"diffBeginner": "初学者",
|
||
"diffIntermediate": "中级",
|
||
"diffAdvanced": "高级",
|
||
"troubleshootingHeading": "故障排除",
|
||
"tsModuleProblem": "<code>Cannot find module '@wokwi/elements'</code> / <code>'avr8js'</code>",
|
||
"tsLedProblem": "LED 不闪烁",
|
||
"tsLedSolution": "先编译,然后点击运行。检查组件的属性对话框中的引脚分配。",
|
||
"tsNewCompProblem": "新组件未出现在选择器中",
|
||
"tsNewCompSolution": "请参阅上面的“更新 wokwi-elements 后” - 将 wokwi-elements 克隆到 <code>third-party/</code> 中,然后运行 <code>npm run generate:metadata</code>。",
|
||
"fullStatusCallout": "<strong>完整状态:</strong> 请参阅仓库中的 <a>docs/SETUP_COMPLETE.md</a>。"
|
||
},
|
||
"esp32": {
|
||
"label": "// xtensa",
|
||
"heading": "ESP32 仿真 (Xtensa)",
|
||
"lead": "ESP32 和 ESP32-S3 开发板使用 <strong>Xtensa LX6 / LX7</strong> 架构。由于没有生产质量的纯 JavaScript Xtensa 仿真器,Velxio 为这些开发板使用了一个 <strong>基于 QEMU 的后端</strong>,即 lcgamboa 分支,带有 libqemu-xtensa,编译为原生二进制文件,并由 FastAPI 后端提供服务。",
|
||
"noteCallout": "<strong>注意:</strong> 本节适用于 <strong>ESP32</strong>、<strong>ESP32-S3</strong> (Xtensa) 和 <strong>ESP32-C3</strong> (RISC-V) - 它们都共享相同的 QEMU lcgamboa 管道,只是使用不同的 libqemu 二进制文件和机器目标。有关 C3 特定的差异,请参阅 <strong>RISC-V 仿真 (ESP32-C3)</strong>。",
|
||
"howHeading": "工作原理",
|
||
"how1": "Arduino 草图由 <code>arduino-cli</code> 编译为 ESP32 <code>.bin</code> 闪存映像。",
|
||
"how2": "前端通过 WebSocket (<code>Esp32Bridge</code>) 将二进制文件发送到后端。",
|
||
"how3": "后端使用 lcgamboa Xtensa 插件启动一个 QEMU 进程,加载映像。",
|
||
"how4": "GPIO 和 UART 事件通过 WebSocket 转发回浏览器。",
|
||
"how5": "前端实时更新组件状态 (LED、显示屏等)。",
|
||
"boardsHeading": "支持的开发板",
|
||
"boardEsp32Devkit": "ESP32 DevKit C V4",
|
||
"altEsp32Devkit": "ESP32 DevKit C V4",
|
||
"boardEsp32S3": "ESP32-S3",
|
||
"altEsp32S3": "ESP32-S3",
|
||
"boardEsp32Cam": "ESP32-CAM",
|
||
"altEsp32Cam": "ESP32-CAM",
|
||
"boardXiaoS3": "Seeed XIAO ESP32-S3",
|
||
"altXiaoS3": "Seeed XIAO ESP32-S3",
|
||
"boardNanoEsp32": "Arduino Nano ESP32",
|
||
"altNanoEsp32": "Arduino Nano ESP32",
|
||
"thBoard": "开发板",
|
||
"thCpu": "CPU",
|
||
"thEmulation": "仿真方式",
|
||
"boardEsp32": "ESP32",
|
||
"boardEsp32S3Name": "ESP32-S3",
|
||
"cpuLx6": "Xtensa LX6 双核 @ 240 MHz",
|
||
"cpuLx7": "Xtensa LX7 双核 @ 240 MHz",
|
||
"emuQemu": "QEMU (lcgamboa)",
|
||
"peripheralsHeading": "外设支持",
|
||
"perGpio": "<strong>GPIO</strong>: 数字输出/输入, LED 控制",
|
||
"perUart": "<strong>UART</strong>: 通过 <code>Serial.print()</code> 的串口监视器",
|
||
"perI2cSpi": "<strong>I2C / SPI</strong>: 外设通信",
|
||
"perRmt": "<strong>RMT / NeoPixel</strong>: 可寻址 LED 灯带",
|
||
"perLedc": "<strong>LEDC / PWM</strong>: 硬件 PWM 通道",
|
||
"perWifi": "<strong>WiFi</strong>: 部分支持 (连接事件转发)",
|
||
"requirementsHeading": "要求",
|
||
"requirementsBody": "基于 QEMU 的仿真需要运行 Velxio 后端。这意味着它适用于 <strong>托管版本</strong> (位于 <a>velxio.dev</a>) 和 <strong>Docker 自托管</strong>,但不适用于纯静态前端部署。",
|
||
"fullDetailsCallout": "<strong>完整详情:</strong> 仓库中的 <a>docs/ESP32_EMULATION.md</a>。"
|
||
},
|
||
"roadmap": {
|
||
"label": "// 未来",
|
||
"heading": "路线图",
|
||
"lead": "Velxio 已实现、正在进行中和计划在未来版本中实现的功能。",
|
||
"implementedHeading": "已实现",
|
||
"impMonaco": "Monaco 编辑器,支持 C++ 语法高亮、自动补全和缩略图",
|
||
"impMultiFile": "多文件工作区,可创建、重命名、删除和切换文件",
|
||
"impArduinoCli": "通过 <code>arduino-cli</code> 进行 Arduino 编译 (支持多文件草图)",
|
||
"impAvr": "通过 avr8js 实现真实的 ATmega328p / ATmega2560 仿真,主频 16 MHz",
|
||
"impPeripherals": "完整的 GPIO、定时器、USART、ADC、SPI、I2C 支持",
|
||
"impRp2040": "通过 rp2040js 实现真实的 RP2040 仿真,主频 133 MHz",
|
||
"impWokwi": "48 个以上的 wokwi-elements 组件,带组件选择器",
|
||
"impWires": "导线创建、正交布线和基于线段的编辑",
|
||
"impSerial": "串口监视器,支持自动波特率检测和发送",
|
||
"impLibMgr": "库管理器 (浏览和安装 Arduino 库)",
|
||
"impAuth": "电子邮件/密码和 Google OAuth 认证",
|
||
"impProjects": "项目保存、更新、删除,带永久 URL",
|
||
"impExamples": "8 个内置示例项目",
|
||
"impDocker": "单容器 Docker 镜像,发布到 GHCR 和 Docker Hub",
|
||
"inProgressHeading": "进行中",
|
||
"ipWires": "功能性导线连接,电气信号路由和验证",
|
||
"ipWireErrors": "导线连接错误处理,检测短路和无效连接",
|
||
"nearTermHeading": "计划:近期",
|
||
"ntUndoRedo": "代码编辑和画布更改的撤销/重做",
|
||
"ntExport": "将项目导出/导入为 <code>.zip</code> 文件",
|
||
"ntMoreBoards": "更多开发板,ESP32、Arduino Leonardo",
|
||
"ntBreadboard": "面包板,放置组件并自动布线",
|
||
"midTermHeading": "计划:中期",
|
||
"mtTypeDoc": "TypeDoc API 文档,从源代码自动生成",
|
||
"mtGhPages": "GitHub Pages 文档站点,推送到 <code>main</code> 时自动部署",
|
||
"mtSensors": "更多传感器仿真,HC-SR04、DHT22、红外接收器",
|
||
"mtEeprom": "EEPROM 仿真,仿真重启后持久化读写",
|
||
"mtScope": "示波器组件,绘制模拟引脚电压随时间变化",
|
||
"longTermHeading": "计划:长期",
|
||
"ltMultiplayer": "多人协作,实时共享和协同编辑仿真",
|
||
"ltTutorials": "嵌入式教程系统,编辑器内逐步指导项目",
|
||
"ltSdk": "自定义组件 SDK,使用 JSON/TypeScript API 定义新组件",
|
||
"ltMobile": "移动/平板支持,响应式布局适配触摸设备",
|
||
"contributeCallout": "<strong>想要贡献?</strong> 欢迎在 <a>github.com/davidmonterocrespo24/velxio</a> 提交功能请求、错误报告和拉取请求。"
|
||
},
|
||
"emulator": {
|
||
"label": "// 内部机制",
|
||
"heading": "仿真器架构",
|
||
"lead": "Velxio 使用 <strong>真实的 CPU 仿真</strong>,而不是简化模型。本文档描述了仿真的每一层如何工作。",
|
||
"dataFlowHeading": "高级数据流",
|
||
"avr8Heading": "AVR8 仿真 (Arduino Uno / Nano / Mega)",
|
||
"avr8Body": "AVR 后端使用 <a>avr8js</a>,它实现了一个完整的 ATmega328p / ATmega2560 处理器。",
|
||
"execLoopHeading": "执行循环",
|
||
"execLoopBody": "每个动画帧执行大约 267,000 个 CPU 周期 (16 MHz / 60 FPS):",
|
||
"peripheralsHeading": "支持的外设",
|
||
"thPeripheral": "外设",
|
||
"thDetails": "详情",
|
||
"perGpio": "GPIO",
|
||
"perGpioDetail": "PORTB (引脚 8-13), PORTC (A0-A5), PORTD (引脚 0-7)",
|
||
"perTimers": "Timer0 / Timer1 / Timer2",
|
||
"perTimersDetail": "<code>millis()</code>, <code>delay()</code>, 通过 <code>analogWrite()</code> 的 PWM",
|
||
"perUsart": "USART",
|
||
"perUsartDetail": "完整的发送和接收,为串口监视器提供支持",
|
||
"perAdc": "ADC",
|
||
"perAdcDetail": "10 位,5 V 参考电压,引脚 A0-A5",
|
||
"perSpi": "SPI",
|
||
"perSpiDetail": "硬件 SPI (支持 ILI9341、SD 卡等)",
|
||
"perI2c": "I2C (TWI)",
|
||
"perI2cDetail": "硬件 I2C,带虚拟设备总线",
|
||
"pinMappingHeading": "引脚映射",
|
||
"thArduinoPin": "Arduino 引脚",
|
||
"thAvrPort": "AVR 端口",
|
||
"thBit": "位",
|
||
"rp2040Heading": "RP2040 仿真 (Raspberry Pi Pico)",
|
||
"rp2040Body": "RP2040 后端使用 <a>rp2040js</a>。",
|
||
"rp2040Bullet1": "真实的 RP2040 仿真,主频 133 MHz",
|
||
"rp2040Bullet2": "UART0 串行输出显示在串口监视器中",
|
||
"rp2040Bullet3": "GPIO 26-29 (A0-A3) 上的 12 位 ADC,参考电压 3.3 V",
|
||
"hexHeading": "HEX 文件格式",
|
||
"hexBody": "Arduino 编译生成 <strong>Intel HEX</strong> 格式。解析器位于 <code>hexParser.ts</code>:",
|
||
"hex1": "读取以 <code>:</code> 开头的行",
|
||
"hex2": "提取地址、记录类型和数据字节",
|
||
"hex3": "返回程序字节的 <code>Uint8Array</code>",
|
||
"hex4": "<code>AVRSimulator</code> 将其转换为 <code>Uint16Array</code> (16 位字,小端序)",
|
||
"sourceFilesHeading": "关键源文件",
|
||
"thFile": "文件",
|
||
"thPurpose": "用途",
|
||
"fileAvrSimDesc": "AVR8 CPU 仿真器封装",
|
||
"filePinManagerDesc": "将 Arduino 引脚映射到 UI 组件",
|
||
"fileHexParserDesc": "Intel HEX 解析器",
|
||
"fileSimCanvasDesc": "画布渲染",
|
||
"fileArduinoCliDesc": "arduino-cli 封装",
|
||
"fileCompileRouteDesc": "编译 API 端点"
|
||
},
|
||
"architecture": {
|
||
"label": "// 系统设计",
|
||
"heading": "项目架构",
|
||
"lead": "Velxio 是一个完全本地的 Arduino 仿真器,使用官方的 Wokwi 仓库以获得最大兼容性。它具有真实的 AVR8 CPU 仿真、48 个以上的交互式电子组件、全面的导线系统以及构建时的组件发现管道。",
|
||
"overviewHeading": "高级概述",
|
||
"dataFlowsHeading": "数据流",
|
||
"compilationHeading": "1. 编译",
|
||
"simLoopHeading": "2. 仿真循环",
|
||
"inputCompsHeading": "3. 输入组件",
|
||
"storesHeading": "关键前端存储 (Zustand)",
|
||
"thStore": "存储",
|
||
"thKeyState": "关键状态",
|
||
"storeEditorState": "files[], activeFileId",
|
||
"storeEditorPurpose": "多文件 Monaco 工作区",
|
||
"storeSimState": "simulator, components, wires, running",
|
||
"storeSimPurpose": "仿真 + 画布状态",
|
||
"storeAuthState": "user, token",
|
||
"storeAuthPurpose": "认证 (持久化到 localStorage)",
|
||
"storeProjectState": "projectId, slug",
|
||
"storeProjectPurpose": "当前打开的项目",
|
||
"routesHeading": "后端路由",
|
||
"thRoute": "路由",
|
||
"routeCompileDesc": "编译草图文件 - Intel HEX / UF2",
|
||
"routeBoardsDesc": "列出可用开发板",
|
||
"routeAuthDesc": "电子邮件/密码 + Google OAuth",
|
||
"routeProjectsDesc": "CRUD 项目持久化 (SQLite)",
|
||
"routeLibsDesc": "Arduino 库管理器集成",
|
||
"routeHealthDesc": "健康检查端点",
|
||
"wireSysHeading": "导线系统",
|
||
"wireSysLead": "导线存储为对象,其起点/终点端点连接到组件引脚位置:",
|
||
"wireBullet1": "正交布线,无对角线线段",
|
||
"wireBullet2": "线段拖动,垂直于线段方向拖动",
|
||
"wireBullet3": "自动更新,移动组件时重新计算导线位置",
|
||
"wireBullet4": "网格吸附,所有导线端点使用 20 像素网格",
|
||
"fullDetailsCallout": "<strong>完整详情:</strong> 请参阅仓库中的 <a>docs/ARCHITECTURE.md</a>。"
|
||
},
|
||
"intro": {
|
||
"label": "// 概述",
|
||
"heading": "简介",
|
||
"lead": "<strong>Velxio</strong> 是一个完全本地、开源的 Arduino 仿真器,完全在浏览器中运行。编写 Arduino C++ 代码,使用真实的 <code>arduino-cli</code> 后端编译,并通过真实的 AVR8 / RP2040 CPU 仿真进行仿真,支持 48 个以上的交互式电子组件,无需在您的机器上安装任何软件。",
|
||
"whyHeading": "为什么选择 Velxio?",
|
||
"whyNoInstall": "<strong>无需安装</strong>:一切都在浏览器中运行。",
|
||
"whyRealEmulation": "<strong>真实仿真</strong>:不是简化模型,而是精确的 AVR8 / RP2040 CPU 仿真。",
|
||
"whyInteractive": "<strong>交互式组件</strong>:LED、按钮、电位器、显示屏、传感器等。",
|
||
"whyOpenSource": "<strong>开源</strong>:可以检查、修改和自行托管。",
|
||
"boardsHeading": "支持的开发板",
|
||
"thBoard": "开发板",
|
||
"thCpu": "CPU",
|
||
"thEmulator": "仿真器",
|
||
"boardArduinoUno": "Arduino Uno",
|
||
"boardArduinoNano": "Arduino Nano",
|
||
"boardArduinoMega": "Arduino Mega",
|
||
"boardPiPico": "Raspberry Pi Pico",
|
||
"boardEsp32C3": "ESP32-C3 / XIAO C3 / C3 SuperMini",
|
||
"boardEsp32": "ESP32 / ESP32-S3",
|
||
"cpuAtmega328p": "ATmega328p @ 16 MHz",
|
||
"cpuAtmega2560": "ATmega2560 @ 16 MHz",
|
||
"cpuRp2040": "RP2040 @ 133 MHz",
|
||
"cpuRv32imc": "RV32IMC @ 160 MHz",
|
||
"cpuXtensa": "Xtensa LX6/LX7 @ 240 MHz",
|
||
"emuAvr8js": "avr8js",
|
||
"emuRp2040js": "rp2040js",
|
||
"emuEsp32C3": "Esp32C3Simulator (浏览器)",
|
||
"emuQemu": "QEMU (lcgamboa)",
|
||
"liveDemoCallout": "<strong>在线演示:</strong> <a>velxio.dev</a>,无需安装,打开编辑器即可立即开始仿真。"
|
||
},
|
||
"nav": {
|
||
"intro": "简介",
|
||
"gettingStarted": "快速开始",
|
||
"emulator": "仿真器架构",
|
||
"riscvEmulation": "RISC-V 仿真 (ESP32-C3)",
|
||
"esp32Emulation": "ESP32 仿真 (Xtensa)",
|
||
"rp2040Emulation": "RP2040 仿真 (Raspberry Pi Pico)",
|
||
"raspberryPi3Emulation": "Raspberry Pi 3 仿真 (QEMU)",
|
||
"components": "组件参考",
|
||
"architecture": "项目架构",
|
||
"thirdParty": "Wokwi 库",
|
||
"mcp": "MCP 服务器",
|
||
"setup": "项目状态",
|
||
"roadmap": "路线图",
|
||
"buildQemu": "从源码构建 QEMU"
|
||
}
|
||
}
|
||
}
|