[riot-devel] Porting RIOT to ESP8266

Daniel Petry daniel.petry at fu-berlin.de
Mon Feb 26 13:37:51 CET 2018


This may or may not be useful, but a company called Whitecat have done a 
port of FreeRTOS to the ESP8266:

https://github.com/whitecatboard/Lua-RTOS-ESP8266

Dan.


On 26.02.2018 13:00, 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20180226/741abee0/attachment.html>


More information about the devel mailing list