From 7827873e16c3900c8492871e141780bafccb638d Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 20 Sep 2023 14:28:06 +1000 Subject: [PATCH] Freshed up building instructions, move to a better-named file. --- README.md => BUILDING.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) rename README.md => BUILDING.md (80%) diff --git a/README.md b/BUILDING.md similarity index 80% rename from README.md rename to BUILDING.md index f5100e16..8e4427ab 100644 --- a/README.md +++ b/BUILDING.md @@ -6,7 +6,8 @@ SPDX-License-Identifier: CC0-1.0 # Building and flashing -1. Make sure you've got all of the submodules in this repo correctly initialised; +1. Make sure you've got all of the submodules in this repo correctly initialised: + ``` git submodule update --init --recursive ``` @@ -15,34 +16,28 @@ git submodule update --init --recursive the ESP-IDF tools. You can consult the [ESP-IDF docs](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html) for more detailed instructions, but the TL;DR is that you'll want to run something like this: + ``` -./lib/esp-adf/esp-idf/install.sh esp32 +./lib/esp-idf/install.sh esp32 ``` 3. As a final piece of setup, you will need to source the env file in this repo to correctly set up your environment for building. + ``` . ./.env ``` -**For VSCode:** -When using the Espressif IDF extension, you may want to set the following in your settings.json file: -``` - "idf.espAdfPath": "${workspaceFolder}/lib/esp-adf", - "idf.espAdfPathWin": "${workspaceFolder}/lib/esp-adf", - "idf.espIdfPath": "${workspaceFolder}/lib/esp-adf/esp-idf", - "idf.espIdfPathWin": "${workspaceFolder}/lib/esp-adf/esp-idf" -``` +There is also a `.env.fish` for fish users. 4. You can now build the project using `idf.py build`. Or to flash the project onto your board, something like: + ``` idf.py -p /dev/ttyUSB0 -b 115200 flash ``` -(give or take the correct serial port) -Remember that you will need to boot your ESP32 into software download mode -before you will be able to flash. +(give or take the correct serial port) # Running tests @@ -59,11 +54,20 @@ To add new tests to a components, you must: 2. Include the component in the test build and list of testable components, in `test/CMakeLists.txt`. -# clangd setup + +# VSCode setup + +When using the Espressif IDF extension, you may want to set the following in your settings.json file: +``` + "idf.espIdfPath": "${workspaceFolder}/lib/esp-idf", + "idf.espIdfPathWin": "${workspaceFolder}/lib/esp-idf" +``` + +# LSP (clangd) setup A regular build will generate `build/compile_commands.json`, which clangd will automatically pick up. However, there are a couple of additional steps to get -everything to place nicely. +everything to play nicely. First, you will need to download the xtensa clang toolchain. You can do this via ESP-IDF by running `idf_tools.py install xtensa-clang` @@ -96,8 +100,4 @@ CompileFlags: Compiler: /Users/YOU/.espressif/tools/xtensa-clang/esp-clang/bin/clang++ ``` -You should then get proper LSP integration via clangd, give or take a couple of -oddities (e.g. for some reason, my install still can't see `stdio.h`. NBD tho.) - -Expect this integration to improve sometime in the near future, per [this forum -thread](https://esp32.com/viewtopic.php?f=13&t=29563). +You should then get proper LSP integration via clangd.