[riot-devel] Porting RIOT to ESP8266

Mathias Tausig mathias.tausig at fh-campuswien.ac.at
Thu Apr 12 16:56:34 CEST 2018

Du you know, if your port will work on the ESP32 (the successor of the ESP8266),


On Mon, 2018-02-26 at 13:00 +0100, Gunar Schorcht wrote:
> Hi,
> I just want to let the community to know that I'm trying an ESP8266
> port. At the moment
> - the core's thread interface is implemented and tested,
> - the core's irq interface is implemented and tested,
> - GPIO handling module periph_gpio is implemented and tested,
> - small applications like ipc_pingpong with interrupts and some I/O are
> already working.
> My next steps are to implement perihph_timer module (I'm currently
> working on), periph_uart module, periph_spi module and some networking.
> I started with two different approaches that are both working until now
> - a bare metal implementation, and
> - an implementation on top of the community SDK esp-open_sdk.
> I really like the bare-metal implementation and would prefer this
> approach since it gives more control over the hardware, requires less
> resources and fits better RIOT-OS's core implementation approach.
> Furthermore, it is generic enough that it might run on other Xtensa
> processors.
> However, once networking using the proprietary WIFI hardware is needed,
> it becomes unfortunately necessary to use proprietary SDK components. So
> it seems, that I will continue the SDK approach first.
> Implementing RIOT-OS on top of the SDK is a bit tricky because the SDK
> already uses tasks to control the hardware timers, the WIFI hardware,
> the network connectivity, and so on. Therefore, it is necessary to give
> away the task control to the SDK from time to time to keep the SDK tasks
> alive. This is done by reimplementing the ets_run function, which is
> executed each time before the idle task of the RIOT-OS and after the
> timer interrupt handling.
> One of the two hardware timers is used in the SDK, the other hardware
> timer is needed for PWM outputs. Therefore, RIOT OS timers are
> implemented as SDK software timers, which results in an pure accuracy of
> around 500 us.
> That's the status for now and I hope that it might become interesting
> for someone. I will publish my changes at
> https://github.com/gschorcht/RIOT-Xtensa-ESP8266 and submit a pull
> request once I made some more progress.
> Regards
> Gunar
> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
DI Mathias Tausig
Lehre und Forschung
Kompetenzzentrum für IT-Security

FH Campus Wien
Masterstudium IT-Security
Favoritenstrasse 226, Raum B.2.15
1100 Wien, Austria
T: +43 1 606 68 77-2472 
F: +43 1 606 68 77-2469
mathias.tausig at fh-campuswien.ac.at
PGP Key-ID: 75656BBF
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20180412/e446a430/attachment.sig>

More information about the devel mailing list