RISC-V Embed Development Platform for ESP32-C6-LCD-1.47
OrzEmbed 是一个专注于 RISC-V 嵌入式开发的项目,主要围绕 ESP32-C6-LCD-1.47 开发板展开。项目旨在提供完整的开发环境和工具链,支持多种编程语言进行嵌入式系统开发。
- ESP32-C6FH4 芯片(RISC-V 架构)
- 1.47 英寸 LCD 显示屏
- Micro SD 卡座
- 贴片陶瓷天线
- BOOT 和 RESET 按键
- 硬件平台: ESP32-C6 芯片
- 软件框架: ESP-IDF (Espressif IoT Development Framework)
- 开发语言: C/C++, 支持嵌入式 Swift 和 Rust
- 构建工具: CMake, Ninja
- 依赖管理: Python 包管理
OrzEmbed/
├── docs/ # 项目文档
│ ├── ESP32-C6.md # ESP32-C6-LCD-1.47 详细文档
│ ├── ESP-IDF-ANALYSIS.md # ESP-IDF 组件分析与学习路径
│ └── ESP-IDF-LEARNING-PATH.md # ESP-IDF 示例工程学习路径
├── esp-idf/ # ESP-IDF 开发框架(子模块)
├── images/ # 开发板图片和示意图
├── project/ # 多语言项目示例
│ ├── c/ # C 语言项目示例
│ ├── swift/ # Swift 语言项目示例
│ └── rust/ # Rust 语言项目示例
├── scripts/ # 脚本工具
│ ├── esp32-setup-macos.sh # macOS 环境设置脚本
│ └── esp32c6-build-flash.sh # 构建和烧录脚本
└── README.md # 项目说明文档
项目包含三种编程语言的 ESP32-C6 开发示例:
- 项目配置:
CMakeLists.txt- ESP-IDF 项目配置文件 - 主代码:
main/main.c- 实现了基本的日志输出和 Hello World 示例 - 功能:演示了 ESP32-C6 的基本日志功能与工程结构
- 项目配置:
Package.swift- Swift 包配置文件 - 主代码:
Sources/MyApp/main.swift- 实现了基本的 Swift 嵌入式应用 - 功能:演示了如何在 ESP32-C6 上运行 Swift 代码,包括与 C 代码的互操作
- 项目配置:
Cargo.toml- Rust 依赖配置文件 - 主代码:
src/main.rs- 实现了基本的 Rust 嵌入式应用 - 功能:演示了如何在 ESP32-C6 上运行 Rust 代码,包含 GPIO 操作与日志输出
source ./esp-idf/export.sh
cd project/c
idf.py set-target esp32c6
idf.py build
idf.py flash monitorcd project/swift
swift build --experimental-swift-embedded --destination ./destination.json --target MyApp
./scripts/esp32c6-swift-build-flash.sh /dev/tty.usbmodemXXXXSwift 交叉编译产物位于 .build/ 对应目录;一键脚本会构建 Swift,并使用 ESP-IDF 的 bootloader/partition table 进行烧录。
source ./esp-idf/export.sh
cd project/rust
unset IDF_PATH
export ESP_IDF_VERSION=v5.2.3
export ESP_IDF_TOOLS_INSTALL_DIR=custom:/Users/bytedance/Documents/OrzEmbed/project/rust/.embuild/espressif
export IDF_PYTHON_ENV_PATH=/Users/bytedance/Documents/OrzEmbed/project/rust/.embuild/espressif/python_env/idf5.2_py3.9_env
export PATH=/Users/bytedance/Documents/OrzEmbed/project/rust/.embuild/espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin:$PATH
cargo +esp build --release --target riscv32imac-esp-espidf
cargo +esp espflash flash --release --target riscv32imac-esp-espidf --port /dev/tty.usbmodemXXXX# 在 macOS 上设置开发环境
./scripts/esp32-setup-macos.sh
# 进入 esp-idf 目录并初始化
cd esp-idf
source export.sh# 构建、烧录并监控
./scripts/esp32c6-build-flash.shidf.py set-target esp32c6: 设置目标芯片idf.py build: 编译项目idf.py flash: 烧录到开发板idf.py monitor: 查看开发板输出(按 Ctrl+] 退出)
