summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCraig Hesling <hesling@chromium.org>2020-03-03 10:42:25 -0800
committerCommit Bot <commit-bot@chromium.org>2020-03-12 20:57:22 +0000
commitd9ee9a446f5eccc61efd67b53f9d89847d0b3bd5 (patch)
treed02c1d3b1265bc426fc82c36205e9e77224566be /docs
parentf8ed81321862e43ab5beaa0df9f060053dd07605 (diff)
downloadchrome-ec-d9ee9a446f5eccc61efd67b53f9d89847d0b3bd5.tar.gz
docs: Add IDE Support
Had to uglify the table content because Gitiles doesn't understand | inside backticks, in a table. It also doesn't like < or > inside backticks. BRANCH=none BUG=none TEST=Observe in gitiles Signed-off-by: Craig Hesling <hesling@chromium.org> Change-Id: Id6e29899878f1b17c12a475e5e882553d32b712b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2085157
Diffstat (limited to 'docs')
-rw-r--r--docs/ide-support.md46
-rw-r--r--docs/sitemap.md1
2 files changed, 47 insertions, 0 deletions
diff --git a/docs/ide-support.md b/docs/ide-support.md
new file mode 100644
index 0000000000..1ab807a3d5
--- /dev/null
+++ b/docs/ide-support.md
@@ -0,0 +1,46 @@
+# IDE Support
+
+[TOC]
+
+## Odd File Types
+
+EC uses a few odd file types/names. Some are included from other header files
+and used to generate data structures, thus it is important for your IDE to index
+them.
+
+Patterns | Vague Type
+----------------------------------------------------- | ----------
+`README.*` | Text
+`Makefile.rules`, `Makefile.toolchain` | Makefile
+`gpio.wrap` | C Header
+`gpio.inc` | C Header
+`*.tasklist`, `*.irqlist`, `*.mocklist`, `*.testlist` | C Header
+
+## IDE Configuration Primitives
+
+Due to the way most EC code has been structured, you can typically only safely
+inspect a configuration for a single image (RO or RW) for a single board. Thus,
+you need to specify the specific board/image pair when requesting defines and
+includes.
+
+Command | Description
+-------------------------------------------- | ------------------------------
+`make print-defines BOARD=$BOARD BLD=RW/RO` | List compiler injected defines
+`make print-includes BOARD=$BOARD BLD=RW/RO` | List compiler include paths
+
+## VSCode
+
+You can use the `ide-config.sh` tool to generate a VSCode configuration that
+includes selectable sub-configurations for every board/image pair.
+
+1. From the root `ec` directory, do the following:
+ ```bash
+ mkdir -p .vscode
+ ./util/ide-config.sh vscode all:RW all:RO | tee .vscode/c_cpp_properties.json
+ ```
+2. Open VSCode and navigate to some C source file.
+3. Run `C/C++ Reset IntelliSense Database` from the `Ctrl-Shift-P` menu
+4. Select the config in the bottom right, next to the `Select Language Mode`.
+ You will only see this option when a C/C++ file is open. Additionally, you
+ can select a configuration by pressing `Ctrl-Shift-P` and selecting the
+ `C/C++ Select a Configuration...` option.
diff --git a/docs/sitemap.md b/docs/sitemap.md
index 387e1be5f0..b430c69e2e 100644
--- a/docs/sitemap.md
+++ b/docs/sitemap.md
@@ -48,3 +48,4 @@
* [I2C tracing via console commands](./i2c-debugging.md)
* [Application Processor to EC communication](./ap-ec-comm.md)
* [Code Reviews](./code_reviews.md)
+* [IDE Support](./ide-support.md)