esp-open-rtos/open_esplibs
Flavio Bayer de426c08b6
bugfix/ets_timer.c: race condition while disarming
If `sdk_ets_timer_arm_ms_us` is called right after `vPortExitCritical` inside `sdk_ets_timer_disarm` on line 247 (by an ISR for example, which was my case), execution will loop forever on line 196, since `timer->next!=ETS_TIMER_NOT_ARMED`, which was supposed to be changed in line 248.
By delaying the IRS or context switch until `sdk_ets_timer_disarm` the problem is fixed.
2018-04-13 16:08:03 -03:00
..
include Reverse engineered ets_timers.o 2017-08-30 13:51:32 +10:00
libmain bugfix/ets_timer.c: race condition while disarming 2018-04-13 16:08:03 -03:00
libnet80211 lwip update 2018-02-09 20:26:02 +11:00
libphy open_esplibs: add a skeleton for code in more libraries. (#266) 2016-11-12 20:54:24 +02:00
libpp Newlib: implement locks 2017-12-13 11:29:43 +11:00
libwpa lwip update 2018-02-09 20:26:02 +11:00
component.mk open_esplibs: add a skeleton for code in more libraries. (#266) 2016-11-12 20:54:24 +02:00
README.md open_esplibs: Add README and Copyright headers 2016-07-06 17:22:09 +10:00

Open Espressif Libs

These are functional recreations of the MIT licensed binary Espressif SDK libraries found in lib. They keep the same functionality as the SDK libraries (possibly with bugfixes or other minor tweaks), but are compiled from source.

Most of the reverse engineering work so far has been by Alex Stewart (@foogod).

See http://esp8266-re.foogod.com/wiki/ for more technical details of SDK library internals.

Disabling

The open ESP libs are compiled in by default, and they automatically replace any binary SDK symbols (functions, etc.) with the same names.

To compile using the binary SDK libraries only, override the COMPONENTS list in parameters.mk to remove the open_esplibs component, or add -DOPEN_ESPLIBS=0 to CPPFLAGS.

To selectively replace some functionality with binary SDK functionality for debugging, edit the header file open_esplibs/include/open_esplibs.h