SlideShare a Scribd company logo
Espressif Systems EclipseCon Europe 2019
Eclipse Plugin for ESP-IDF
Ivan Grokhotkov, Espressif
Kondal Kolipaka, Espressif
Espressif Systems EclipseCon Europe 2019
Agenda
• Introduction
• ESP8266 & ESP32
• Espressif Hardware & Software
• IoT Applications
• ESP-IDF
• ESP-IDF Eclipse Plugin
• Demo
• Future Plans
• Q&A
Espressif Systems EclipseCon Europe 2019
Who are we?
Fabless semiconductor company based in Shanghai, China,
with offices in China, India, and Europe.
Designs connected MCUs, targeting IoT applications.
Widely known for designing low-cost and low entry barrier Wi-Fi
solutions.
Espressif Systems
Espressif Systems EclipseCon Europe 2019
Espressif Hardware & Software
SoCs Modules Development
Boards
SDKs
• ESP32
• ESP32-S2(soon)
• ESP8266, ESP8285
• ESP32 Modules
• ESP8266
Modules
• ESP32-DevKit-C
• ESP-WROVER-KIT
• ESP8266-DevKit-C
Bundle of utilities and
device-level APIs for
ESP8266 and ESP32
Espressif Systems EclipseCon Europe 2019
ESP32
• Processor
• Xtensa® Dual-Core 32-bit LX6
• Operating at 160 or 240 MHz
• Ultra low power (ULP) co-processor
• Memory
• 520 KiB SRAM
• 4MB external flash
• Wireless connectivity
• Wi-Fi: 802.11 b/g/n
• Bluetooth: v4.2 BR/EDR and BLE
Espressif Systems EclipseCon Europe 2019
ESP8266, ESP32, ESP32-S2
Specifications ESP8266 ESP32 ESP32-S2
MCU
Single core Xtensa CPU up to
160MHz clock
Dual core Xtensa CPU up to 240MHz
clock
Single core Xtensa CPU up to
240MHz clock
Internal Memory (IRAM+DRAM) 160kB 520kB 320kB
Connectivity Wi-Fi 802.11bgn (HT20)
Wi-Fi 802.11bgn (HT40) Dual mode
BT/BLE 4.2 Ethernet
Wi-Fi 802.11bgn (HT40)
External Memory
Up to 16MB SPI flash, (1MB
executable XIP)
Up to 16MB SPI flash, (4MB XIP), Up
to 4MB SPI RAM
Up to 1GB SPI flash, (7MB XIP, 4MB
rodata), Up to 10MB SPI RAM
Peripherals GPIO, SPI, UART, I2S, ADC
GPIO, SPI, UART, I2C, I2S, PWM,
ADC, DAC, RMT, CAN, SD
host/slave,
low-power coprocessor
GPIO, SPI, UART, I2C, I2S, PWM,
ADC, DAC, RMT, USB, low-power
coprocessor
Hardware Security Features
SHA2, RSA, AES
accelerators Transparent flash
decryption Secure boot 1024 bit OTP
SHA2, RSA, AES, HMAC
accelerators Transparent flash/RAM
en/decryption (AES-XTS) RSA-PSS
Secure boot 4096 bit OTP
Espressif Systems EclipseCon Europe 2019
Applications
• Consumer Electronics
• Appliances
• Smart home
• Toys
• Industrial devices
• Bridges, gateways
• Data collection
• Embedded controllers
Espressif Systems EclipseCon Europe 2019
ESP-IDF
ESP IoT Development Framework (ESP-IDF) is the
official development framework for the ESP32 series of
chips.
Source code: https://github.com/espressif/esp-idf/
(Apache 2.0 license)
Documentation: https://docs.espressif.com/projects/esp-
idf/en/latest/
Espressif Systems EclipseCon Europe 2019
SoC vendors have to provide…
• Startup code, bootloader, linker scripts, register definitions
• Peripheral drivers
• RTOS
• Network stack
• Cryptography, TLS stack
• Filesystems
• Protocols (HTTP, MQTT, CoAP,…, Cloud connectors)
• POSIX abstractions
• Build system
• Profiling, tracing, debugging tools
• IDE
Espressif Systems EclipseCon Europe 2019
SDKs: custom code
• Startup code, bootloader, linker scripts, register definitions
• Peripheral drivers
• RTOS
• Network stack
• Cryptography, TLS stack
• Filesystems
• Protocols (HTTP, MQTT, CoAP,…, Cloud connectors)
• POSIX abstractions
• Build system
• Profiling, tracing, debugging tools
• IDE
Espressif Systems EclipseCon Europe 2019
Vendor SDK choices
• Library packaging format:
CMSIS-Packs, mBed & Arduino libraries, etc.
• Build system can deal with libraries and dependencies:
CMake, Scons, Meson…
• Compile-time configuration support:
CMSIS Packs, Kconfig
• Command line tools (build system, configuration tools,
flashing the boards)
• Integration with IDEs
Espressif Systems EclipseCon Europe 2019
ESP-IDF Components
Espressif Systems EclipseCon Europe 2019
Component Structure
Typical
component
Wrapper
component
Fully custom
component
Espressif Systems EclipseCon Europe 2019
Build process and tools
Espressif Systems EclipseCon Europe 2019
Requirements for developing ESP32 Applications
Hardware:
• An ESP32 board
• USB cable - USB A / micro USB B
• Computer running Windows, Linux, or macOS
Software:
• Toolchain to compile code for ESP32
• Build tools - CMake and Ninja to build
• ESP-IDF
• Editor - Eclipse IDE
Espressif Systems EclipseCon Europe 2019
ESP-IDF Eclipse Plugins
IDF Eclipse Plugins aiming to provide better tooling
capabilities, which simplifies and enhances standard
Eclipse CDT for developing and debugging ESP32 IoT
applications.
Espressif Systems EclipseCon Europe 2019
Current Status
GitHub page:
https://github.com/espressif/idf-eclipse-plugin
Update Site:
https://dl.espressif.com/dl/idf-eclipse-plugin/updates/latest/
Current Release: 1.0.0-beta
Espressif Systems EclipseCon Europe 2019
Challenges we are trying to solve
• Toolchain configuration
• Environment variables Configuration
• Installing required ESP-IDF Tools
• End-to-End workflow
• Everything from Eclipse IDE
• Official support from Espressif
Espressif Systems EclipseCon Europe 2019
IDF Eclipse Plugin Features
• Installing ESP-IDF Tools
• Creating a new CMake IDF Project
• Create Launch Target
• Compiling the Project
• Flashing the Project
• Viewing Serial Output
Espressif Systems EclipseCon Europe 2019
IDF Eclipse Plugin Features
• sdkconfig Editor
• CMake Editor https://github.com/15knots/cmakeed
• Configuring Build Environment Variables (auto-configured)
• Configuring Core Build Toolchain and CMake Toolchain
(auto-configured)
• Configuring the flash arguments (auto-configured)
• ESP-IDF Templates selection during project creation
• Import an existing project
Espressif Systems EclipseCon Europe 2019
JTAG Debugging
GDB Hardware Debugging Plugins
• Part of Eclipse CDT Package
Open OCD Debugging Plugins
• https://gnu-mcu-eclipse.github.io/debug/openocd/
Espressif Systems EclipseCon Europe 2019
Debugging with JTAG
Espressif Systems EclipseCon Europe 2019
IDF Eclipse Plugin Prerequisites
• Java 8 and above
• Python 3.5 and above
• Eclipse 2018-12 CDT and above
• ESP-IDF 4.0 and above
Espressif Systems EclipseCon Europe 2019
Demo
Espressif Systems EclipseCon Europe 2019
Future Plans
• Keep improving the Eclipse support for ESP-IDF
• Automate all the configuration part
• Support Multiple Chip targets
• JTAG Debugger customization for ESP boards
• Evaluating Core Dump and GDB Stub Debugging
• Static Code analyzer
Espressif Systems EclipseCon Europe 2019
ESP-IDF Learning Resources
ESP-IDF Eclipse Plugin
https://github.com/espressif/idf-eclipse-plugin
ESP-IDF
https://github.com/espressif/esp-idf/
ESP-IDF Offical documentation
https://docs.espressif.com/projects/esp-idf/en/latest/
ESP32 Forum
https://esp32.com
Espressif Systems EclipseCon Europe 2019
Espressif Systems EclipseCon Europe 2019

More Related Content

What's hot

SensorStudio introduction (IDC 2016)
SensorStudio introduction (IDC 2016)SensorStudio introduction (IDC 2016)
SensorStudio introduction (IDC 2016)
Herve Blanc
 
Sketching In Hardware 3
Sketching In Hardware 3Sketching In Hardware 3
Sketching In Hardware 3
Shigeru Kobayashi
 
Sensirion humidity sensor driver in SensorStudio (IDC 2016)
Sensirion humidity sensor driver in SensorStudio (IDC 2016)Sensirion humidity sensor driver in SensorStudio (IDC 2016)
Sensirion humidity sensor driver in SensorStudio (IDC 2016)
Herve Blanc
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)
Matt Bynum
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster System
Tomoya Fujita
 
Flare - tech-intro-for-paris-hackathon
Flare - tech-intro-for-paris-hackathonFlare - tech-intro-for-paris-hackathon
Flare - tech-intro-for-paris-hackathon
Cisco DevNet
 
Headless Android Strikes Back!
Headless Android Strikes Back!Headless Android Strikes Back!
Headless Android Strikes Back!
Gary Bisson
 
FTF2014 - Android Accessory Protocol
FTF2014 - Android Accessory ProtocolFTF2014 - Android Accessory Protocol
FTF2014 - Android Accessory Protocol
Gary Bisson
 
Introduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoTIntroduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoT
Amrisha Prashar
 
Home Automation by ESP8266
Home Automation by ESP8266Home Automation by ESP8266
Home Automation by ESP8266
Gleb Vinnikov
 
Orbleaf: Integrated Smart Card Development Platform
Orbleaf: Integrated Smart Card Development PlatformOrbleaf: Integrated Smart Card Development Platform
Orbleaf: Integrated Smart Card Development Platform
Tech in Asia ID
 
Tech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystemTech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystem
RISC-V International
 
Sony robotics overview
Sony robotics overviewSony robotics overview
Sony robotics overview
Tomoya Fujita
 
Accessing Hardware on Android
Accessing Hardware on AndroidAccessing Hardware on Android
Accessing Hardware on Android
Gary Bisson
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266
Baoshi Zhu
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
Balena
 
Introduction to Internet of Things Hardware
Introduction to Internet of Things HardwareIntroduction to Internet of Things Hardware
Introduction to Internet of Things Hardware
Daniel Eichhorn
 
Kicad 101
Kicad 101Kicad 101
Kicad 101
Ayan Pahwa
 
Mec 2015 - Windows developer program for IoT
Mec 2015 - Windows developer program for IoTMec 2015 - Windows developer program for IoT
Mec 2015 - Windows developer program for IoT
Mirco Vanini
 
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
NETWAYS
 

What's hot (20)

SensorStudio introduction (IDC 2016)
SensorStudio introduction (IDC 2016)SensorStudio introduction (IDC 2016)
SensorStudio introduction (IDC 2016)
 
Sketching In Hardware 3
Sketching In Hardware 3Sketching In Hardware 3
Sketching In Hardware 3
 
Sensirion humidity sensor driver in SensorStudio (IDC 2016)
Sensirion humidity sensor driver in SensorStudio (IDC 2016)Sensirion humidity sensor driver in SensorStudio (IDC 2016)
Sensirion humidity sensor driver in SensorStudio (IDC 2016)
 
Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster System
 
Flare - tech-intro-for-paris-hackathon
Flare - tech-intro-for-paris-hackathonFlare - tech-intro-for-paris-hackathon
Flare - tech-intro-for-paris-hackathon
 
Headless Android Strikes Back!
Headless Android Strikes Back!Headless Android Strikes Back!
Headless Android Strikes Back!
 
FTF2014 - Android Accessory Protocol
FTF2014 - Android Accessory ProtocolFTF2014 - Android Accessory Protocol
FTF2014 - Android Accessory Protocol
 
Introduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoTIntroduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoT
 
Home Automation by ESP8266
Home Automation by ESP8266Home Automation by ESP8266
Home Automation by ESP8266
 
Orbleaf: Integrated Smart Card Development Platform
Orbleaf: Integrated Smart Card Development PlatformOrbleaf: Integrated Smart Card Development Platform
Orbleaf: Integrated Smart Card Development Platform
 
Tech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystemTech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystem
 
Sony robotics overview
Sony robotics overviewSony robotics overview
Sony robotics overview
 
Accessing Hardware on Android
Accessing Hardware on AndroidAccessing Hardware on Android
Accessing Hardware on Android
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
 
Introduction to Internet of Things Hardware
Introduction to Internet of Things HardwareIntroduction to Internet of Things Hardware
Introduction to Internet of Things Hardware
 
Kicad 101
Kicad 101Kicad 101
Kicad 101
 
Mec 2015 - Windows developer program for IoT
Mec 2015 - Windows developer program for IoTMec 2015 - Windows developer program for IoT
Mec 2015 - Windows developer program for IoT
 
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
stackconf 2021 | Introducing Thola – A tool for Monitoring and Provisioning N...
 

Similar to Eclipse Plugin for ESP-IDF - EclipseCon Europe 2019

IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdfIDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
Kondal Kolipaka
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT Devices
MicroEJ
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
Intel® Software
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
LF Events
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT Edition
Intel® Software
 
Esp8266 Workshop
Esp8266 WorkshopEsp8266 Workshop
Esp8266 Workshop
Stijn van Drunen
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
BeMyApp
 
Sa*ple
Sa*pleSa*ple
Sa*ple
Krishanu B
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
AMD Developer Central
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
Codemotion
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
chitlesh
 
ESP32 WiFi & Bluetooth Module - Getting Started Guide
ESP32 WiFi & Bluetooth Module - Getting Started GuideESP32 WiFi & Bluetooth Module - Getting Started Guide
ESP32 WiFi & Bluetooth Module - Getting Started Guide
handson28
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
Hideki Takase
 
Tools for FPGA Development
Tools for FPGA DevelopmentTools for FPGA Development
Tools for FPGA Development
Brahim HAMADICHAREF
 
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with IntelWKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
Amazon Web Services
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
Hannes Tschofenig
 
Sundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing ProgramSundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing Program
Sundance Multiprocessor Technology Ltd.
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
Cisco DevNet
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 

Similar to Eclipse Plugin for ESP-IDF - EclipseCon Europe 2019 (20)

IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdfIDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT Devices
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT Edition
 
Esp8266 Workshop
Esp8266 WorkshopEsp8266 Workshop
Esp8266 Workshop
 
ARM
ARMARM
ARM
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
 
Sa*ple
Sa*pleSa*ple
Sa*ple
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
 
ESP32 WiFi & Bluetooth Module - Getting Started Guide
ESP32 WiFi & Bluetooth Module - Getting Started GuideESP32 WiFi & Bluetooth Module - Getting Started Guide
ESP32 WiFi & Bluetooth Module - Getting Started Guide
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
 
Tools for FPGA Development
Tools for FPGA DevelopmentTools for FPGA Development
Tools for FPGA Development
 
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with IntelWKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
WKS420 Create an IoT Gateway & Establish a Data Pipeline to AWS IoT with Intel
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 
Sundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing ProgramSundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing Program
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Eclipse Plugin for ESP-IDF - EclipseCon Europe 2019

  • 1. Espressif Systems EclipseCon Europe 2019 Eclipse Plugin for ESP-IDF Ivan Grokhotkov, Espressif Kondal Kolipaka, Espressif
  • 2. Espressif Systems EclipseCon Europe 2019 Agenda • Introduction • ESP8266 & ESP32 • Espressif Hardware & Software • IoT Applications • ESP-IDF • ESP-IDF Eclipse Plugin • Demo • Future Plans • Q&A
  • 3. Espressif Systems EclipseCon Europe 2019 Who are we? Fabless semiconductor company based in Shanghai, China, with offices in China, India, and Europe. Designs connected MCUs, targeting IoT applications. Widely known for designing low-cost and low entry barrier Wi-Fi solutions. Espressif Systems
  • 4. Espressif Systems EclipseCon Europe 2019 Espressif Hardware & Software SoCs Modules Development Boards SDKs • ESP32 • ESP32-S2(soon) • ESP8266, ESP8285 • ESP32 Modules • ESP8266 Modules • ESP32-DevKit-C • ESP-WROVER-KIT • ESP8266-DevKit-C Bundle of utilities and device-level APIs for ESP8266 and ESP32
  • 5. Espressif Systems EclipseCon Europe 2019 ESP32 • Processor • Xtensa® Dual-Core 32-bit LX6 • Operating at 160 or 240 MHz • Ultra low power (ULP) co-processor • Memory • 520 KiB SRAM • 4MB external flash • Wireless connectivity • Wi-Fi: 802.11 b/g/n • Bluetooth: v4.2 BR/EDR and BLE
  • 6. Espressif Systems EclipseCon Europe 2019 ESP8266, ESP32, ESP32-S2 Specifications ESP8266 ESP32 ESP32-S2 MCU Single core Xtensa CPU up to 160MHz clock Dual core Xtensa CPU up to 240MHz clock Single core Xtensa CPU up to 240MHz clock Internal Memory (IRAM+DRAM) 160kB 520kB 320kB Connectivity Wi-Fi 802.11bgn (HT20) Wi-Fi 802.11bgn (HT40) Dual mode BT/BLE 4.2 Ethernet Wi-Fi 802.11bgn (HT40) External Memory Up to 16MB SPI flash, (1MB executable XIP) Up to 16MB SPI flash, (4MB XIP), Up to 4MB SPI RAM Up to 1GB SPI flash, (7MB XIP, 4MB rodata), Up to 10MB SPI RAM Peripherals GPIO, SPI, UART, I2S, ADC GPIO, SPI, UART, I2C, I2S, PWM, ADC, DAC, RMT, CAN, SD host/slave, low-power coprocessor GPIO, SPI, UART, I2C, I2S, PWM, ADC, DAC, RMT, USB, low-power coprocessor Hardware Security Features SHA2, RSA, AES accelerators Transparent flash decryption Secure boot 1024 bit OTP SHA2, RSA, AES, HMAC accelerators Transparent flash/RAM en/decryption (AES-XTS) RSA-PSS Secure boot 4096 bit OTP
  • 7. Espressif Systems EclipseCon Europe 2019 Applications • Consumer Electronics • Appliances • Smart home • Toys • Industrial devices • Bridges, gateways • Data collection • Embedded controllers
  • 8. Espressif Systems EclipseCon Europe 2019 ESP-IDF ESP IoT Development Framework (ESP-IDF) is the official development framework for the ESP32 series of chips. Source code: https://github.com/espressif/esp-idf/ (Apache 2.0 license) Documentation: https://docs.espressif.com/projects/esp- idf/en/latest/
  • 9. Espressif Systems EclipseCon Europe 2019 SoC vendors have to provide… • Startup code, bootloader, linker scripts, register definitions • Peripheral drivers • RTOS • Network stack • Cryptography, TLS stack • Filesystems • Protocols (HTTP, MQTT, CoAP,…, Cloud connectors) • POSIX abstractions • Build system • Profiling, tracing, debugging tools • IDE
  • 10. Espressif Systems EclipseCon Europe 2019 SDKs: custom code • Startup code, bootloader, linker scripts, register definitions • Peripheral drivers • RTOS • Network stack • Cryptography, TLS stack • Filesystems • Protocols (HTTP, MQTT, CoAP,…, Cloud connectors) • POSIX abstractions • Build system • Profiling, tracing, debugging tools • IDE
  • 11. Espressif Systems EclipseCon Europe 2019 Vendor SDK choices • Library packaging format: CMSIS-Packs, mBed & Arduino libraries, etc. • Build system can deal with libraries and dependencies: CMake, Scons, Meson… • Compile-time configuration support: CMSIS Packs, Kconfig • Command line tools (build system, configuration tools, flashing the boards) • Integration with IDEs
  • 12. Espressif Systems EclipseCon Europe 2019 ESP-IDF Components
  • 13. Espressif Systems EclipseCon Europe 2019 Component Structure Typical component Wrapper component Fully custom component
  • 14. Espressif Systems EclipseCon Europe 2019 Build process and tools
  • 15. Espressif Systems EclipseCon Europe 2019 Requirements for developing ESP32 Applications Hardware: • An ESP32 board • USB cable - USB A / micro USB B • Computer running Windows, Linux, or macOS Software: • Toolchain to compile code for ESP32 • Build tools - CMake and Ninja to build • ESP-IDF • Editor - Eclipse IDE
  • 16. Espressif Systems EclipseCon Europe 2019 ESP-IDF Eclipse Plugins IDF Eclipse Plugins aiming to provide better tooling capabilities, which simplifies and enhances standard Eclipse CDT for developing and debugging ESP32 IoT applications.
  • 17. Espressif Systems EclipseCon Europe 2019 Current Status GitHub page: https://github.com/espressif/idf-eclipse-plugin Update Site: https://dl.espressif.com/dl/idf-eclipse-plugin/updates/latest/ Current Release: 1.0.0-beta
  • 18. Espressif Systems EclipseCon Europe 2019 Challenges we are trying to solve • Toolchain configuration • Environment variables Configuration • Installing required ESP-IDF Tools • End-to-End workflow • Everything from Eclipse IDE • Official support from Espressif
  • 19. Espressif Systems EclipseCon Europe 2019 IDF Eclipse Plugin Features • Installing ESP-IDF Tools • Creating a new CMake IDF Project • Create Launch Target • Compiling the Project • Flashing the Project • Viewing Serial Output
  • 20. Espressif Systems EclipseCon Europe 2019 IDF Eclipse Plugin Features • sdkconfig Editor • CMake Editor https://github.com/15knots/cmakeed • Configuring Build Environment Variables (auto-configured) • Configuring Core Build Toolchain and CMake Toolchain (auto-configured) • Configuring the flash arguments (auto-configured) • ESP-IDF Templates selection during project creation • Import an existing project
  • 21. Espressif Systems EclipseCon Europe 2019 JTAG Debugging GDB Hardware Debugging Plugins • Part of Eclipse CDT Package Open OCD Debugging Plugins • https://gnu-mcu-eclipse.github.io/debug/openocd/
  • 22. Espressif Systems EclipseCon Europe 2019 Debugging with JTAG
  • 23. Espressif Systems EclipseCon Europe 2019 IDF Eclipse Plugin Prerequisites • Java 8 and above • Python 3.5 and above • Eclipse 2018-12 CDT and above • ESP-IDF 4.0 and above
  • 24. Espressif Systems EclipseCon Europe 2019 Demo
  • 25. Espressif Systems EclipseCon Europe 2019 Future Plans • Keep improving the Eclipse support for ESP-IDF • Automate all the configuration part • Support Multiple Chip targets • JTAG Debugger customization for ESP boards • Evaluating Core Dump and GDB Stub Debugging • Static Code analyzer
  • 26. Espressif Systems EclipseCon Europe 2019 ESP-IDF Learning Resources ESP-IDF Eclipse Plugin https://github.com/espressif/idf-eclipse-plugin ESP-IDF https://github.com/espressif/esp-idf/ ESP-IDF Offical documentation https://docs.espressif.com/projects/esp-idf/en/latest/ ESP32 Forum https://esp32.com