Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers

EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers

Télécharger pour lire hors ligne

Buildroot is a tool designed by embedded Linux developers to build embedded Linux systems using cross-compilation. It allows to build a cross-compilation toolchain (or re-use an existing one), a root filesystem image with applications and libraries, a kernel image and a bootloader image or any combination of these. Buildroot is typically used to create the embedded Linux systems of industrial systems based on the ARM, PowerPC or x86 architectures, by integrating multiple existing open-source components (kernel, base components, graphical libraries, networking applications, etc.) and in-house components specific to the embedded system.

Many of the early embedded Linux developers are used to work with text editors such as Emacs or Vi. However, in the recent years, the major expansion of the embedded Linux platform has attracted many more developers that are more familiar with feature-full, integrated, and user-friendly development environments. To fulfill this need, Eclipse provides an excellent platform, especially with extensions such as CDT, the Autotools plugin, the multiple plugins from the Linux tools project, the Target Communication Framework, and more.

As many embedded Linux developers use Buildroot to build their system, it sounded natural to provide an easy-to-use integration with Eclipse. To achieve that, we:

Developed an Eclipse plugin that automatically registers the available Buildroot toolchains into Eclipse CDT. This allows application developers to transparently build their application, and then execute it and debug it on the embedded target platform directly within Eclipse.
Created a specialized Eclipse version bundling all the useful existing plug-ins for embedded Linux developers: Eclipse CDT, our specialized Buildroot plugin, the Autotools plugin, Linux Tools plugins, etc.
Through this talk, we would like to demonstrate how Eclipse has been extended to match the needs of embedded Linux developers, and we will perform a live demonstration of these capabilities using an ARM development platform for which Eclipse will help build, execute and debug applications.

Buildroot is a tool designed by embedded Linux developers to build embedded Linux systems using cross-compilation. It allows to build a cross-compilation toolchain (or re-use an existing one), a root filesystem image with applications and libraries, a kernel image and a bootloader image or any combination of these. Buildroot is typically used to create the embedded Linux systems of industrial systems based on the ARM, PowerPC or x86 architectures, by integrating multiple existing open-source components (kernel, base components, graphical libraries, networking applications, etc.) and in-house components specific to the embedded system.

Many of the early embedded Linux developers are used to work with text editors such as Emacs or Vi. However, in the recent years, the major expansion of the embedded Linux platform has attracted many more developers that are more familiar with feature-full, integrated, and user-friendly development environments. To fulfill this need, Eclipse provides an excellent platform, especially with extensions such as CDT, the Autotools plugin, the multiple plugins from the Linux tools project, the Target Communication Framework, and more.

As many embedded Linux developers use Buildroot to build their system, it sounded natural to provide an easy-to-use integration with Eclipse. To achieve that, we:

Developed an Eclipse plugin that automatically registers the available Buildroot toolchains into Eclipse CDT. This allows application developers to transparently build their application, and then execute it and debug it on the embedded target platform directly within Eclipse.
Created a specialized Eclipse version bundling all the useful existing plug-ins for embedded Linux developers: Eclipse CDT, our specialized Buildroot plugin, the Autotools plugin, Linux Tools plugins, etc.
Through this talk, we would like to demonstrate how Eclipse has been extended to match the needs of embedded Linux developers, and we will perform a live demonstration of these capabilities using an ARM development platform for which Eclipse will help build, execute and debug applications.

Plus De Contenu Connexe

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir

EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers

  1. 1. Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers Mélanie Bats, Obeo
  2. 2. Who Am I ?
  3. 3. What is embedded Linux ? Linux kernel Open source components Specific applications
  4. 4. Demo hardware platform ● Fairly typical ARM evaluation platform ● Many devices: Screen, Network, SD card, USB ... ● Used to develop prototypes ● Reference to design specific board Atmel AT91SAM9G45 (ARMv5) processor
  5. 5. Building an embedded Linux system Binary distributions Building tools PTXdistOpenWRT ● Automate system reconstruction from source code ● Support many more CPU architectures ● High flexibility on components configuration ● Most used solution ● Heavyweight systems ● Not all CPU architectures supported ● Not flexible to choose the configuration for each components
  6. 6. What is Buildroot ? ● Simple build system - http://buildroot.org : – automate the cross compilation process – generate kernel images, file system and bootloader ● Developped by : – an open source community – vendor neutral – under GPLv2 ● Actively developped and used for many products ● Written in make language ● Choice of options in configuration interface
  7. 7. Buildroot Demo
  8. 8. Host (PC) Buildroot Buildroot generates Target (ARM) Toolchain DirectFB headers & lib Openssh headers & lib BusyBox source DirectFB source Openssh source Specific Library source Target File System Kernel Image Applications BusyBox DirectFB Openssh Specific Library Libc Pre compiled Toolchain gcc gdb binutils Libc gcc gdb binutils Libc Specific lib headers & lib Various host utilities : Pkg- config... Kernel source InputsOutputs
  9. 9. Why Integrating Buildroot in Eclipse ? System developers Application developers
  10. 10. Why Integrating Buildroot in Eclipse ? ● Open source IDE for Application developers – Preconfigured with the cross compilation toolchain – Transfer / Execute remote application – Remote Debug
  11. 11. Buildroot toolchain Eclipse plugin ● Integrate the toolchains to Eclipse CDT – Read the toolchain description file (/home/.buildroot- eclipse.toolchains) – Register dynamically the toolchains in CDT – Project toolchain selection: ● Set the C/C++ compiler path ● Integration with scanner information ● Remote Launch configuration ● Remote Debug configuration
  12. 12. Integration with CDT ● Inspired by the Eclipse Blackfin plugin and the GNU ARM Eclipse plugin ● Use CDT extension point : org.eclipse.cdt.managedbuilder.core.buildDefinitions – with a dynamicElementProvider and according to the Buildroot configuration file: ● declare toolchain ● projectType
  13. 13. Integration with CDT ● Missing dynamic extension points in CDT ? ● scanner configuration discovery profile ● launch configuration
  14. 14. Integration with CDT
  15. 15. Buildroot Eclipse Update-site ● Update-site integrating embedded Linux tools : – Buildroot Toolchain Eclipse Plugin – CDT – Linux tools – Autotools … ● Make a Ready-to-Use development platform for embedded Linux
  16. 16. Buildroot Eclipse plugin demonstration
  17. 17. Availability ● Buildroot : http://buildroot.org ● Buildroot Eclipse plugin sources (EPL licence): – https://github.com/mbats/eclipse-buildroot-toolchain-plugin – Also contains the Buildroot patch to add Eclipse toolchain generation menu ● Buildroot Eclipse bundle sources : https://github.com/mbats/eclipse-buildroot-bundle ● Buildroot Eclipse bundle update-site (based on Eclipse 3.8) : available soon
  18. 18. Future work ● Create an Eclipse bundle with Tycho which will be available on Buildroot website ● Integrate : – pkg-config – RX-TX – LTTNG – Other relevant Eclipse plugins for embedded Linux development ● Write documentation and make a video tutorial
  19. 19. Questions ? Contact : melanie.bats@obeo.fr

×