更新说明
This commit is contained in:
@@ -1,26 +1,84 @@
|
||||
# USB 虚拟键鼠项目说明
|
||||
|
||||
## 项目概述
|
||||
|
||||
ESP32-S3 USB 复合设备项目,采用 C + Rust 混合编程:
|
||||
- **USB 部分**:C + TinyUSB(稳定可靠)
|
||||
- **应用逻辑**:Rust(通过 FFI 与 C 交互)
|
||||
|
||||
## 编译成功
|
||||
|
||||
项目已成功编译,生成的文件位于:
|
||||
- `build/my_usb_project.bin`
|
||||
- `build/bootloader/bootloader.bin`
|
||||
- `build/partition_table/partition-table.bin`
|
||||
- `build/my_usb_project.bin` - 主程序固件
|
||||
- `build/bootloader/bootloader.bin` - 引导程序
|
||||
- `build/partition_table/partition-table.bin` - 分区表
|
||||
|
||||
### 编译步骤
|
||||
|
||||
1. 编译 Rust 库:
|
||||
```batch
|
||||
build_rust.bat
|
||||
```
|
||||
|
||||
2. 编译 ESP-IDF 项目:
|
||||
```batch
|
||||
idf.cmd build
|
||||
```
|
||||
|
||||
## 烧录到 ESP32-S3
|
||||
|
||||
使用以下命令烧录:
|
||||
|
||||
```bash
|
||||
idf.py flash
|
||||
```batch
|
||||
idf.cmd flash
|
||||
```
|
||||
|
||||
或者指定端口:
|
||||
|
||||
```bash
|
||||
idf.py -p COM3 flash
|
||||
```batch
|
||||
idf.cmd -p COM3 flash
|
||||
```
|
||||
|
||||
## 调试与日志
|
||||
|
||||
### 串口监视器
|
||||
|
||||
烧录后启动串口监视器查看日志:
|
||||
|
||||
```batch
|
||||
idf.cmd monitor
|
||||
```
|
||||
|
||||
或者指定端口:
|
||||
|
||||
```batch
|
||||
idf.cmd -p COM3 monitor
|
||||
```
|
||||
|
||||
### 烧录并监视
|
||||
|
||||
一步完成烧录和监视:
|
||||
|
||||
```batch
|
||||
idf.cmd flash monitor
|
||||
```
|
||||
|
||||
### 退出监视器
|
||||
|
||||
按 `Ctrl+]` 退出串口监视器。
|
||||
|
||||
### 日志级别
|
||||
|
||||
在代码中使用 ESP_LOG 系列函数输出日志:
|
||||
|
||||
```c
|
||||
ESP_LOGI(TAG, "This is an info message");
|
||||
ESP_LOGW(TAG, "This is a warning");
|
||||
ESP_LOGE(TAG, "This is an error");
|
||||
```
|
||||
|
||||
默认日志级别可在 `sdkconfig` 中配置:`CONFIG_LOG_DEFAULT_LEVEL`
|
||||
|
||||
## 功能说明
|
||||
|
||||
当前实现的 USB 复合设备包含:
|
||||
@@ -28,6 +86,24 @@ idf.py -p COM3 flash
|
||||
- ✅ USB 鼠标 (HID)
|
||||
- ✅ USB 虚拟 U盘 (MSC)
|
||||
|
||||
## 技术细节
|
||||
|
||||
### 链接器脚本修复
|
||||
|
||||
由于 Rust 库包含的 rodata 数据与 ESP-IDF 的 app desc 段冲突,需要修改链接器脚本 `build/esp-idf/esp_system/ld/sections.ld`,在 `.flash.appdesc` 段末尾添加 64KB 对齐:
|
||||
|
||||
```ld
|
||||
.flash.appdesc : ALIGN(0x10)
|
||||
{
|
||||
_rodata_reserved_start = ABSOLUTE(.);
|
||||
_rodata_start = ABSOLUTE(.);
|
||||
*(.rodata_desc .rodata_desc.*)
|
||||
*(.rodata_custom_desc .rodata_custom_desc.*)
|
||||
/* Force to next 64KB boundary */
|
||||
. = ALIGN(0x10000);
|
||||
} >default_rodata_seg
|
||||
```
|
||||
|
||||
## 下一步开发
|
||||
|
||||
要实现具体的键盘/鼠标功能,需要:
|
||||
@@ -41,4 +117,4 @@ idf.py -p COM3 flash
|
||||
|
||||
- 确保 ESP32-S3 开发板支持 USB OTG
|
||||
- 连接 USB 线到 ESP32-S3 的 USB 微口
|
||||
- 某些开发板可能需要配置 USB D+ 上拉电阻
|
||||
- 某些开发板可能需要配置 USB D+ 上拉电阻
|
||||
Reference in New Issue
Block a user