copyright (c) 2020, eclipse foundation, inc ......platformio is a professional collaborative...

33
COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) 1 Being Productive with Open Source Eclipse Development Tools Frédéric Desbiens, Eclipse Foundation Alexander Fedorov, ArSysOp September 15, 2020 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

Upload: others

Post on 16-Aug-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)1

Being Productive with Open Source Eclipse Development ToolsFrédéric Desbiens, Eclipse FoundationAlexander Fedorov, ArSysOp

September 15, 2020

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

Page 2: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

2 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Agenda > The Case for Open

> Software at OpenHW and Beyond

> CORE-V IDE and its building blocks

2 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

Page 3: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

3 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)3

OpennessCreates Ecosystems

Page 4: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

4 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

What are your plans for implementing IoT solutions based on open source technology?

60% of companies are factoring open source into their IoT deployment plans. This clearly means the dominant IoT platforms in the market will either be open source or based on an open source core.14% 37% 23% 26%

We are looking at purely proprietary

(closed source) IoT solutions

We are looking at a mix of

proprietary and open source

We are looking at purely open

source IoT solutions

Don’t know

KEY TAKEAWAY: 2019 IoT Commercial Adoption Survey

Page 5: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

5 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

55% 49% 41% Flexibility Cost More Control

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)5

2019 IoT Commercial Adoption Survey

Top 3 advantages of using open source technologies

(% of question respondents)

Page 6: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

6 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

OpenHW Group Software Task Group

> Compiler tool chains (GNU, LLVM, proprietary) and Operating systems (RTOS, *nix, *bsd)

• Tool chain Includes assembler, linker, debugger and libraries

> Processor and platform models (ISS, cycle accurate, QEMU, OVPSim)

> IDEs (Eclipse family, PlatformIO, proprietary)

> Benchmarking (specifically Embench)

> Demonstration applications

Page 7: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

7 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

OpenHW Group Software Task Group: Goals

● Create a thriving commercial ecosystem for CORE-V software tools, models and operating systems

● To see those tools, models and operating systems which are open source maintained as part of official upstream distributions

Page 8: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

8 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)8

Vestibulum congue

Vestibulum congue

Open Source IoT Ecosystem

Integrated Development Environments

Tool Chains

Page 9: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

9 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Powering the world’s leading commercial IoT solutions

Things Edge Cloud

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)9

Page 10: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

8M+ 45 350+ 46lines of code projects contributors member

organizations

Eclipse IoT Community (as of 9/2020)

10

Page 11: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

IoT Working Group Member Organizations

Strategic members

SterwenTechnology

11

Page 12: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

12 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Who am I?Alexander Fedorov @ ArSysOp

Eclipse Platform Committer

Eclipse CDT Committer

Eclipse Passage Project Lead

Leading IDE effort

at Software Task Group

Page 13: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

13 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

What do we expect from IDE?

1313

> Configurability

> Extensibility

> Scalability

> Usability

> Agility

Page 14: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

14 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

CORE-V IDE already aggregates:

Eclipse Embedded CDT (GNU MCU/ARM Eclipse Plug-ins)

Eclipse Platform

Eclipse CDT

Eclipse Modeling Framework

Page 15: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

15 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model.

Learn more: https://www.eclipse.org/modeling/

Eclipse Modeling Framework

Page 16: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

16 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

> OSGi-based extensible runtime

> Workspace to manage project metadata

> “natures” and “builders” to process content

> SWT and JFace to create reusable UI

> Workbench model to organize perspectives

> p2 to resolve dependencies during update

> User assistance capabilities

Eclipse Platform

Page 17: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

17 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)17

Eclipse CDT: the right choice for IDE

Page 18: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

18 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)18

Eclipse CDT: project configuration

Page 19: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

19 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)19

Eclipse CDT: before & after

Page 20: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

20 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)20

Eclipse CDT: rich debug information

Page 21: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

21 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)21

Eclipse CDT: CLI tools integration

Page 22: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

22 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)22

Eclipse Embedded CDT● create/build/manage embedded ARM/AArch64/RISC-V

applications● ready to run templates for some ARM Cortex-M processors● debugging support via JTAG/SWD● examine and modify peripheral registers during debug

sessions● supports a wide range of 32 and 64-bit toolchains

Learn more https://projects.eclipse.org/projects/iot.embed-cdt

Page 23: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

23 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)23

Eclipse Embedded CDT onRaspberry Pi 4(based on Eclipse Platform for Aarch64)

Page 24: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

24 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

More to consider

Eclipse Passage

License checksUsage constraints

Eclipse LPS4JEclipse LPS4E

LSP & DAP

PlatformIO

Embeddeddevelopment

Page 25: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

25 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)25

Eclipse LSP4JJava implementation of VSCode's language server protocol (LSP) and debug adapter protocol (DAP)

Learn more about LSP:https://microsoft.github.io/language-server-protocol/

Learn more about DAP:https://microsoft.github.io/debug-adapter-protocol/

Page 26: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

26 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)26

Eclipse LSP4EMove heavy tasks like AST building and traversing to a “language server” (separate process)

Page 27: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

27 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Debug Adapter Protocol

2727

Page 28: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

28 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)28

Embedded development

PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse

• 800+ target boards (development kits)

• 20+ software frameworks

(Arduino, ARM mbed, CMSIS, ESP-IDF, FreeRTOS, STM32Cube, Zephyr RTOS, and others)

• 30+ semiconductor architectures and development platforms

(ARM, AVR, Espressif 8266/32, MCS-51, MSP430, PIC32, STM8, RISC-V, and others)

• Over 10,000 libraries

• All famous operating systems

(Windows, macOS, Linux, FreeBSD, Linux ARMv6+, card-sized PCs)

Page 29: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

29 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)29

PlatformIO Eclipse integration● Multi-board and Multi-architecture

programming experience

● Debugging, Unit Testing, Static Analysis, Firmware Inspection, and Remote

Development out-of-the-box

● Developers can work simultaneously on the same embedded project using different

development environments and the favourite

operating system

● Code for any supported framework can be compiled and uploaded to a target platform in

minutes

● Developers no longer have to manually find and assemble an environment of toolchains

Page 30: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

30 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)30

Eclipse PassageDefine and control functionality constraints

Page 31: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

31 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

What do we have in the nearest plans?> Integrate toolchain from Embecosm

> Add “Hello World” sample project

> Provide project templates

> Publish binaries to be a foundation for downstream solutions

3131

Page 32: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

32 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)32

You are welcome to participate!

1. Create account at https://www.eclipse.org/2. Sign Eclipse Contributor Agreement (electronically)3. Specify your GitHub id in your Eclipse profile4. Fork https://github.com/openhwgroup/core-v-ide-cdt5. Don’t forget to add “signed-off-by” to commit messageExample:

Signed-off-by: Alexander Fedorov <[email protected]>

Page 33: COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC ......PlatformIO is a professional collaborative platform for embedded development that support multiple IDE including Eclipse • 800+

33 COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Thank you!

Questions?Frédéric Desbiens@BlueberryCoder

Alexander [email protected]