Hi Gunar,

That sounds great. I'm really looking forward to your port and can't wait to upgrade some older ESP-projects to RIOT finally.

Thanks for working on that and letting us know. Feel free to ping me when the PR is ready and I'll try to help with testing.


Cheers

 Michel


On 02/26/2018 01:00 PM, 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
[email protected]
https://lists.riot-os.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to