-
Notifications
You must be signed in to change notification settings - Fork 2
ELLi Runtime Getting Started
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.
For the basic level understanding, you have to understand how the STM32F051 micro controller works. For that, you need the following documents:
- PM0215 STM32F0xxx Cortex-M0 Programming manual
- RM0091 STM32F05xxx/06xxx advanced ARM-based 32-bit MCUs Reference manual
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.
-
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