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 |
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 |
You can use the ide-config.sh
tool to generate a VSCode configuration that includes selectable sub-configurations for every board/image pair.
From the root ec
directory, do the following:
mkdir -p .vscode ./util/ide-config.sh vscode all:RW all:RO | tee .vscode/c_cpp_properties.json
Open VSCode and navigate to some C source file.
Run C/C++ Reset IntelliSense Database
from the Ctrl-Shift-P
menu
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.
Add the EC specific file associations and style settings. Do the following to copy the default settings to .vscode/settings.json
:
cp .vscode/settings.json.default .vscode/settings.json