Skip to content

ELLi Runtime Getting Started

Pekka Nikander edited this page Jun 19, 2013 · 3 revisions

This document is meant to help relative newcomers to get started with the internals of the ELL-i Ellduino development environment. The expectation level is that you have successfully used the Ellduino extension to the Arduino IDE and flashed one or more sketches to the Ellduino development board. As a next step, you want to get an understanding of what is under the hood, how the Wiring API provided by the Ellduino extension has been implemented.

Background documents

For the basic level understanding, you have to understand how the STM32F051 micro controller works. For that, you need the following documents:

Source code

The runtime source code is located at the hardware/ell-i/stm32 (https://github.com/Ell-i/Arduino/tree/ell-i/hardware/ell-i/stm32) in the Ellduino extension github repository. Currently the runtime supports both the Ellduino development board and the ST STM32F0discovery board, the latter with an Ell-duino like pin order.

The source code has been organised in three different directories, similar to the original Arduino source code. This is maybe silly, and should be reorganised, but we'll see.

  • cores/arduino -- the Arduino compatible Wiring API
  • system/libstm32-- runtime library for all stm32 based boards
  • variants/ellduino_stm32f051 -- Ellduino specific files

The last one should be split into two, one supporting the Ellduino board and the other the STM32F0discovery board.

Boot sequence

  • variants/ellduino_stm32f051/startup_stm32f0xx.s ResetHandler
  • system/libstm32/source/system_stm32f0xx.c SystemInit
  • __libc_init_array in the GCC-provided runtime
  • cores/arduino/main.cpp main
Clone this wiki locally