# Eclipse

The Eclipse CDT (C/C++ Development Tooling) Project provides a fully functional C and C++ Integrated Development Environment based on the Eclipse platform. Features include: support for project creation and managed build for various toolchains, standard make build, source navigation, various source knowledge tools, such as type hierarchy, call graph, include browser, macro definition browser, code editor with syntax highlighting, folding and hyperlink navigation, source code refactoring and code generation, visual debugging tools, including memory, registers, and disassembly viewers.

Refer to the CDT Documentation page for more detailed information.

Contents

- Integration

- Live Integration

- Debugging

- Articles / Manuals

## Integration

Integration process consists of these steps:

1. Open system Terminal and install PlatformIO Core (CLI)

2. Create new folder for your project and change directory (`cd`) to it

3. Generate a project using PIO Core Project Generator (`platformio project init --ide`)

4. Import project in IDE.

Choose board `ID` using platformio boards or Embedded Boards Explorer command and generate project via `platformio project init --ide` command:

    platformio project init --ide eclipse --board <ID>

    # For example, generate project for Arduino UNO
    platformio project init --ide eclipse --board uno

Then:

1. Import this project via `Menu: File > Import... > General > Existing Projects into Workspace > Next` and specify root directory where is located “platformio.ini” (Project Configuration File)

2. Open source file from `src` directory (`*.c, *.cpp, *.ino, etc.`)

3. Build project using `Menu: Project > Build Project` or pre-configured Make Targets (see screenshot below):

   - `PlatformIO: Build` - Build project without auto-uploading

   - `PlatformIO: Clean` - Clean compiled objects.

   - `PlatformIO: Test` - PIO Unit Testing

   - `PlatformIO: Upload` - Build and upload (if no errors)

   - `PlatformIO: Upload using Programmer` see Upload using Programmer

   - `PlatformIO: Upload SPIFFS image` see Uploading files to file system SPIFFS

   - `PlatformIO: Update platforms and libraries` - Update installed platforms and libraries via platformio update

   - `PlatformIO: Rebuild C/C++ Project Index` - Rebuild C/C++ Index for the Project. Allows one to fix code completion and code linting issues.

If you have some problems with unresolved includes, defines, etc., then

1. Rebuild PlatformIO Project Index: `PlatformIO: Rebuild C/C++ Project Index` target

2. Rebuild Eclipse Project Index: `Menu: Project > C/C++ Index > Rebuild`

3. Refresh Project, right click on the project `Project > Refresh` (F5) or restart Eclipse IDE.

Warning

The libraries which are added, installed or used in the project after generating process won’t be reflected in IDE. To fix it please run `PlatformIO: Rebuild C/C++ Project Index` target and right click on the project and `Project > Refresh` (F5).

Warning

The `C/C++ GCC Cross Compiler Support` package must be installed in Eclipse, otherwise the `CDT Cross GCC Built-in Compiler Settings` provider will not be available (check the `Providers` tab in `Project > Properties > C/C++ General > Preprocessor Include Paths, Macros etc.` for a marked entry named `CDT Cross GCC Built-in Compiler Settings`).

If this provider is not available, toolchain related includes cannot be resolved.

## Live Integration

Eclipse Virtual IoT Meetup: PlatformIO: a cross-platform IoT solution to build them all!

## Debugging

A debugging feature is provided by PIO Unified Debugger and new debug configuration named “PlatformIO Debugger” is created. No need to do extra configuration steps!

1. Build a project first time or after “Clean” operation using `PlatformIO: Build` target

2. Launch debugger via “Menu: Debug” or “Bug Icon” button on Tool Bar.

3. Wait for a while, PlatformIO will prepare project for debugging and session will be started soon.

## Articles / Manuals

- May 05, 2016 - Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup - PlatformIO: a cross-platform IoT solution to build them all!

- Sep 01, 2015 - Thomas P. Weldon, Ph.D. - Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation

- Jul 11, 2015 - TrojanC - Learning Arduino GitHub Repository

- June 20, 2014 - Ivan Kravets, Ph.D. - Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO

See a full list with Articles about us.