mirror of
https://github.com/BotChain-Robots/firmware.git
synced 2026-07-08 17:47:21 +02:00
Add windows support
This commit is contained in:
13
.devcontainer/Dockerfile
Normal file
13
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
ARG DOCKER_TAG=latest
|
||||||
|
FROM espressif/idf:${DOCKER_TAG}
|
||||||
|
|
||||||
|
ENV LC_ALL=C.UTF-8
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
|
RUN apt-get update -y && apt-get install udev -y
|
||||||
|
|
||||||
|
RUN echo "source /opt/esp/idf/export.sh > /dev/null 2>&1" >> ~/.bashrc
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/opt/esp/entrypoint.sh" ]
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "-c"]
|
||||||
21
.devcontainer/devcontainer.json
Normal file
21
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "ESP-IDF QEMU",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile"
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.defaultProfile.linux": "bash",
|
||||||
|
"idf.espIdfPath": "/opt/esp/idf",
|
||||||
|
"idf.toolsPath": "/opt/esp",
|
||||||
|
"idf.gitPath": "/usr/bin/git"
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"espressif.esp-idf-extension",
|
||||||
|
"espressif.esp-idf-web"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runArgs": ["--privileged"]
|
||||||
|
}
|
||||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
/build
|
||||||
23
.vscode/c_cpp_properties.json
vendored
Normal file
23
.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "ESP-IDF",
|
||||||
|
"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp-elf\\esp-14.2.0_20241119\\xtensa-esp-elf\\bin\\xtensa-esp32-elf-gcc.exe",
|
||||||
|
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
|
||||||
|
"includePath": [
|
||||||
|
"${config:idf.espIdfPath}/components/**",
|
||||||
|
"${config:idf.espIdfPathWin}/components/**",
|
||||||
|
"${workspaceFolder}/**"
|
||||||
|
],
|
||||||
|
"browse": {
|
||||||
|
"path": [
|
||||||
|
"${config:idf.espIdfPath}/components",
|
||||||
|
"${config:idf.espIdfPathWin}/components",
|
||||||
|
"${workspaceFolder}"
|
||||||
|
],
|
||||||
|
"limitSymbolsToIncludedHeaders": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
15
.vscode/launch.json
vendored
Normal file
15
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "gdbtarget",
|
||||||
|
"request": "attach",
|
||||||
|
"name": "Eclipse CDT GDB Adapter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "espidf",
|
||||||
|
"name": "Launch",
|
||||||
|
"request": "launch"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
14
.vscode/settings.json
vendored
Normal file
14
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"C_Cpp.intelliSenseEngine": "default",
|
||||||
|
"idf.espIdfPathWin": "c:\\Espressif\\frameworks\\esp-idf-v5.4.1",
|
||||||
|
"idf.pythonInstallPath": "c:\\Espressif\\tools\\tools\\idf-python\\3.11.2\\python.exe",
|
||||||
|
"idf.openOcdConfigs": [
|
||||||
|
"board/esp32-wrover-kit-3.3v.cfg"
|
||||||
|
],
|
||||||
|
"idf.toolsPathWin": "c:\\Espressif\\tools",
|
||||||
|
"idf.customExtraVars": {
|
||||||
|
"IDF_TARGET": "esp32"
|
||||||
|
},
|
||||||
|
"idf.flashType": "UART",
|
||||||
|
"idf.portWin": "COM4"
|
||||||
|
}
|
||||||
79
README.md
79
README.md
@@ -1,18 +1,34 @@
|
|||||||
# firmware
|
# Firmware
|
||||||
|
|
||||||
|
1. [Setup](#Setup)
|
||||||
|
1. [Install Dependencies](#InstallDependencies)
|
||||||
|
1. [MacOS](#MacOS1)
|
||||||
|
2. [Windows](#Windows1)
|
||||||
|
2. [Development](#Development)
|
||||||
|
1. [Command Line Tools](#CommandLineTools)
|
||||||
|
1. [MacOS](#MacOS2)
|
||||||
|
2. [Windows](#Windows2)
|
||||||
|
2. [Using an IDE](#UsinganIDE)
|
||||||
|
1. [Visual Studio Code](#VisualStudioCode)
|
||||||
|
2. [JetBrains CLion](#JetBrainsCLion)
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Setup <a name="Setup"></a>
|
||||||
**This project is currently setup to work with the ESP32, we will be using the ESP32-c6 in the future.**
|
**This project is currently setup to work with the ESP32, we will be using the ESP32-c6 in the future.**
|
||||||
|
|
||||||
### Install Dependencies
|
This project uses ESP-IDF version 5.4.
|
||||||
#### MacOS
|
|
||||||
|
### Install Dependencies <a name="InstallDependencies"></a>
|
||||||
|
#### MacOS <a name="MacOS1"></a>
|
||||||
Install xcode command line tools (if you do not already have them)
|
Install xcode command line tools (if you do not already have them)
|
||||||
```
|
```
|
||||||
xcode-select --install
|
xcode-select --install
|
||||||
```
|
```
|
||||||
|
|
||||||
Install project & ESP-IDF dependencies
|
Install project & ESP-IDF dependencies (if you do not already have them)
|
||||||
```
|
```
|
||||||
brew install cmake ninja dfu-util
|
brew install cmake ninja dfu-util python3
|
||||||
brew install python3
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Setup ESP-IDF
|
Setup ESP-IDF
|
||||||
@@ -24,11 +40,24 @@ cd ~/esp/isp-idf
|
|||||||
./install.sh esp32
|
./install.sh esp32
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development
|
#### Windows <a name="Windows1"></a>
|
||||||
### Command Line Tools
|
Install ESP-IDF with with the GUI [Windows installer](https://dl.espressif.com/dl/esp-idf/?idf=4.4).
|
||||||
|
- Use default options.
|
||||||
|
- You may install ESP-IDF to a path that is different than the default, however, keep the length of the path under 90 characters and do not include any spaces or non ASCII characters.
|
||||||
|
- Select version v5.4.x.
|
||||||
|
- The installer will automatically provide
|
||||||
|
- Embedded Python
|
||||||
|
- Required cross compilers
|
||||||
|
- OpenOCD
|
||||||
|
- CMake and Ninja
|
||||||
|
- ESP-IDF
|
||||||
|
|
||||||
|
|
||||||
|
## Development <a name="Development"></a>
|
||||||
The board is flashed via UART. A USB to UART adapter is provided as part of the devboard.
|
The board is flashed via UART. A USB to UART adapter is provided as part of the devboard.
|
||||||
|
|
||||||
#### MacOS
|
### Command Line Tools <a name="CommandLineTools"></a>
|
||||||
|
#### MacOS <a name="MacOS2"></a>
|
||||||
Export environment variables
|
Export environment variables
|
||||||
```
|
```
|
||||||
. ~/esp/esp-idf/export.sh
|
. ~/esp/esp-idf/export.sh
|
||||||
@@ -39,14 +68,40 @@ Build the project
|
|||||||
idf.py build
|
idf.py build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Flash and open serial monitor (Use Ctrl+] to exit)
|
||||||
|
```
|
||||||
|
idf.py flash monitor
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Windows <a name="Windows2"></a>
|
||||||
|
Run the following commands in a command prompt.
|
||||||
|
|
||||||
|
Export environment variables (alternatively run the ESP-IDF Command Prompt shortcut)
|
||||||
|
```
|
||||||
|
# Example path: C:\Espressif\frameworks\esp-idf-v5.4.1-3\
|
||||||
|
|
||||||
|
/Path/To/ESP-IDF/export.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Build the project
|
||||||
|
```
|
||||||
|
idf.py build
|
||||||
|
```
|
||||||
|
|
||||||
Flash and open serial monitor
|
Flash and open serial monitor
|
||||||
```
|
```
|
||||||
idf.py flash monitor
|
idf.py flash monitor
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using an IDE
|
### Using an IDE <a name="UsinganIDE"></a>
|
||||||
Any IDE that supports CMake should be compatible with this project.
|
Any IDE that supports CMake or has an ESP-IDF extension should be compatible with this project.
|
||||||
#### JetBrains CLion
|
|
||||||
|
#### Visual Studio Code <a name="VisualStudioCode"></a>
|
||||||
|
ESP-IDF has an official extension for Visual Studio Code. Install the CMake Tools, Dev Containers, WSL, and ESP-IDF extensions.
|
||||||
|
|
||||||
|
Use the buttons at the bottom of the IDE to build, flash & monitor the board. You may need to change the COM port (at the bottom of the IDE).
|
||||||
|
|
||||||
|
#### JetBrains CLion <a name="JetBrainsCLion"></a>
|
||||||
CLion is compatible with this project. Follow [the tutorial on Espressif's site](https://developer.espressif.com/blog/clion/) with the following modifications:
|
CLion is compatible with this project. Follow [the tutorial on Espressif's site](https://developer.espressif.com/blog/clion/) with the following modifications:
|
||||||
- When asked to select a project, simply import the root directory of this repository (ie. the `firmware` folder).
|
- When asked to select a project, simply import the root directory of this repository (ie. the `firmware` folder).
|
||||||
- If the `Open Project Wizard` does not open, access it via `Settings > Build, Execution, Deployment > CMake`.
|
- If the `Open Project Wizard` does not open, access it via `Settings > Build, Execution, Deployment > CMake`.
|
||||||
|
|||||||
1264
sdkconfig.old
1264
sdkconfig.old
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user