From 090b4686809d1b3feccdd804221ba68305566ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pa=C5=A1ko?= Date: Sat, 17 Sep 2016 16:44:34 +0200 Subject: [PATCH 1/5] FAQ Updated about wdt resets FAQ section updated with an explanation why the wdt bites and how feed them and how to disable the software wdt. --- doc/faq/pictures/wdt_basic_operation.png | Bin 0 -> 73524 bytes doc/faq/readme.md | 99 +++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 doc/faq/pictures/wdt_basic_operation.png diff --git a/doc/faq/pictures/wdt_basic_operation.png b/doc/faq/pictures/wdt_basic_operation.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9b38e7c67516ca0e2aee60d2d7525cd384536a GIT binary patch literal 73524 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 literal 0 HcmV?d00001 diff --git a/doc/faq/readme.md b/doc/faq/readme.md index 04ac3daba0..71497ea356 100644 --- a/doc/faq/readme.md +++ b/doc/faq/readme.md @@ -43,3 +43,102 @@ You will see this issue only if serial upload was not followed by a physical res Ref. [#1017](https://github.com/esp8266/Arduino/issues/1017), [#1107](https://github.com/esp8266/Arduino/issues/1107), [#1782](https://github.com/esp8266/Arduino/issues/1782) + +### I'm getting these Watchdog Resets "wdt reset"�How can I avoid them? +The esp8266 is equipped with two watchdog timers: A software watchdog and a hardware watchdog. If you don't understand why microcontrollers need a watchdog (timer), you may first read [here](http://www.embedded.com/electronics-blogs/beginner-s-corner/4023849/Introduction-to-Watchdog-Timers). + +When your sketch is running�either in the `setup` or during the `loop`�you have to make sure to feed the watchdog periodically. Otherwise "it will bite" and the watchdog reset will stop your sketch. The basic operation is illustrated in the following picture: +![wdt basic operation](pictures/wdt_basic_operation.png) + +**How does the esp8266 Arduino Core feed the watchdog(s)? ** +From the perspective of your Arduino sketch, the basic feeding is implicit: Everytime an iteration of your main loop starts again, i.e. it hits the `loop` statement, (1) takes place and both watchdogs are fed. Esp8266 Arduino libraries, especially core libraries like for instance the `ESP8266WiFi` library take care of feeding the watchdogs, too. Thus, normally you don't have to feed them explicitly. + +**When and why should I feed the watchdog(s) explicitly?** +The software watchdog bites exactly every 3.2 seconds, the hardware watchdog every 7�8 seconds. If your sketch contains code which could exceed running for 3.2 seconds you must feed the watchdogs. I.e. you have to feed them explicitly by calling + + - `yield()` + or + - `delay(...)` + +Note that calling `delayMicroseconds(...)` does **not** feed the watchdogs! + +**Can I disable the watchdogs?** +You can disable the software watchdog but you **cannot** disable the hardware watchdog. Furthermore, you **cannot** change the intervals of the watchdogs timers. + +The following code snippet shows you how to disable the software watchdog and how to feed the hardware watchdog periodically. +```c +extern "C" { + #include "user_interface.h" +} +int j = 0; +unsigned long a, b; + +void setup() { + delay(1000); // This feeds both watchdogs + Serial.begin(115200); + Serial.println("Setup..."); +} +// This function keeps the cpu busy for 1 second by doing stupid NOPs +void ICACHE_RAM_ATTR busy_1second() { + unsigned int i, iterations; + if (F_CPU == 160000000) { + iterations = 13333332; + } + else { + iterations = 6666666; + } + + for (i = 0; i < iterations; i++) { + asm( + "NOP;" + "NOP;" + "NOP;" + "NOP;" + "NOP;" + "NOP;" + "NOP;" + ); + } +} +void loop() { + Serial.println("Getting busy in 3 seconds..."); + delay(3000); + Serial.println("now!"); + system_soft_wdt_stop(); // Disable Software watchdog + system_soft_wdt_feed(); // Feed Hardware Watchdog + for (j = 1; j < 20; j++) { + a = micros(); + busy_1second(); + b = micros(); + Serial.println(b - a); + // Feed Hardware Watchdog every 6 seconds + if (j % 6 == 0) { + system_soft_wdt_feed(); + Serial.println("HW Dog fed! Miam miam :-o "); + } + } + system_soft_wdt_feed(); + system_soft_wdt_restart(); +} +``` +And it will give you the following output: +``` +Getting busy in 3 seconds... +now! +1000002 +1000007 +1000001 +1000000 +1000000 +1000000 +HW Dog fed! Miam miam :-o +1000001 +1000007 +1000000 +1000001 +1000001 +1000000 +HW Dog fed! Miam miam :-o +1000000 +... +``` \ No newline at end of file From 5d16c0bf64cbd4126829f3fca36b3122aebfa6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pa=C5=A1ko?= Date: Sat, 17 Sep 2016 16:56:48 +0200 Subject: [PATCH 2/5] Markdown typo in the FAQ --- doc/faq/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/faq/readme.md b/doc/faq/readme.md index 71497ea356..5d06ce5fb0 100644 --- a/doc/faq/readme.md +++ b/doc/faq/readme.md @@ -50,6 +50,7 @@ The esp8266 is equipped with two watchdog timers: A software watchdog and a hard When your sketch is running�either in the `setup` or during the `loop`�you have to make sure to feed the watchdog periodically. Otherwise "it will bite" and the watchdog reset will stop your sketch. The basic operation is illustrated in the following picture: ![wdt basic operation](pictures/wdt_basic_operation.png) + **How does the esp8266 Arduino Core feed the watchdog(s)? ** From the perspective of your Arduino sketch, the basic feeding is implicit: Everytime an iteration of your main loop starts again, i.e. it hits the `loop` statement, (1) takes place and both watchdogs are fed. Esp8266 Arduino libraries, especially core libraries like for instance the `ESP8266WiFi` library take care of feeding the watchdogs, too. Thus, normally you don't have to feed them explicitly. From a6965856a88ea5cffa9a09c6147129f7b726d65b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pa=C5=A1ko?= Date: Sat, 17 Sep 2016 17:05:16 +0200 Subject: [PATCH 3/5] markdown corrected --- doc/faq/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/faq/readme.md b/doc/faq/readme.md index 5d06ce5fb0..2521bd1c32 100644 --- a/doc/faq/readme.md +++ b/doc/faq/readme.md @@ -51,7 +51,7 @@ When your sketch is running ![wdt basic operation](pictures/wdt_basic_operation.png) -**How does the esp8266 Arduino Core feed the watchdog(s)? ** +**How does the esp8266 Arduino Core feed the watchdog(s)?** From the perspective of your Arduino sketch, the basic feeding is implicit: Everytime an iteration of your main loop starts again, i.e. it hits the `loop` statement, (1) takes place and both watchdogs are fed. Esp8266 Arduino libraries, especially core libraries like for instance the `ESP8266WiFi` library take care of feeding the watchdogs, too. Thus, normally you don't have to feed them explicitly. **When and why should I feed the watchdog(s) explicitly?** From 0421d3869dee53b81e130be91a82306cdddcee83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pa=C5=A1ko?= Date: Sat, 24 Sep 2016 16:24:48 +0200 Subject: [PATCH 4/5] Updated Readme --- doc/faq/readme.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/doc/faq/readme.md b/doc/faq/readme.md index 2521bd1c32..8e959a6f4d 100644 --- a/doc/faq/readme.md +++ b/doc/faq/readme.md @@ -52,10 +52,10 @@ When your sketch is running **How does the esp8266 Arduino Core feed the watchdog(s)?** -From the perspective of your Arduino sketch, the basic feeding is implicit: Everytime an iteration of your main loop starts again, i.e. it hits the `loop` statement, (1) takes place and both watchdogs are fed. Esp8266 Arduino libraries, especially core libraries like for instance the `ESP8266WiFi` library take care of feeding the watchdogs, too. Thus, normally you don't have to feed them explicitly. +From the perspective of your Arduino sketch, the basic feeding is implicit: Everytime an iteration of your main loop starts again, i.e. it hits the `loop` statement both watchdogs are fed; cf. (1) in the figure above. Esp8266 Arduino libraries, especially core libraries like for instance the `ESP8266WiFi` library take care of feeding the watchdogs, too. Thus, normally you don't have to feed them explicitly. **When and why should I feed the watchdog(s) explicitly?** -The software watchdog bites exactly every 3.2 seconds, the hardware watchdog every 7�8 seconds. If your sketch contains code which could exceed running for 3.2 seconds you must feed the watchdogs. I.e. you have to feed them explicitly by calling +The software watchdog bites exactly every 3.2 seconds, the hardware watchdog every 7�8 seconds. If your sketch contains code which could exceed running for 3.2 seconds you must feed the watchdogs. I.e. you have to feed them explicitly by calling (cf. (1) in the figure above): - `yield()` or @@ -66,6 +66,14 @@ Note that calling `delayMicroseconds(...)` does **not** feed the watchdogs! **Can I disable the watchdogs?** You can disable the software watchdog but you **cannot** disable the hardware watchdog. Furthermore, you **cannot** change the intervals of the watchdogs timers. +If you want to disable the software watchdog, you have to call the corresponding SDK functions from the `user_interface.h`. For the documentation on these functions see Espressif's ESP8266 Non-OS SDK API Reference (download on [bbs.espressif](http://bbs.espressif.com/)). + + - `system_soft_wdt_stop()` + - `system_soft_wdt_feed()` + - `system_soft_wdt_restart()` + +The name of the function `system_soft_wdt_feed()` is bit confusing: In general it will feed **both** watchdogs, i.e. the software **and** hardware watchdog. If you disable the software watchdog by calling `system_soft_wdt_stop()` and then call `system_soft_wdt_feed()` afterwards, it will still feed both watchdogs. However, since you have just disabled the software watchdog before, it will have no effect on the software watchdog (timer) and will only affect the hardware watchdog (timer). Thus, from an "End-User's" perspective, this looks like `system_soft_wdt_feed()` feeds the hardware watchdog only. + The following code snippet shows you how to disable the software watchdog and how to feed the hardware watchdog periodically. ```c extern "C" { From a54f573ebd7ac0ab3d1b79cd504e1c8b7c7a4531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pa=C5=A1ko?= Date: Sat, 24 Sep 2016 20:38:49 +0200 Subject: [PATCH 5/5] Update readme Watchdog will RESTART your sketch, is better/more precise than STOP your sketch. --- doc/faq/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/faq/readme.md b/doc/faq/readme.md index 8e959a6f4d..7a9631f0d1 100644 --- a/doc/faq/readme.md +++ b/doc/faq/readme.md @@ -47,7 +47,7 @@ Ref. [#1017](https://github.com/esp8266/Arduino/issues/1017), [#1107](https://gi ### I'm getting these Watchdog Resets "wdt reset"�How can I avoid them? The esp8266 is equipped with two watchdog timers: A software watchdog and a hardware watchdog. If you don't understand why microcontrollers need a watchdog (timer), you may first read [here](http://www.embedded.com/electronics-blogs/beginner-s-corner/4023849/Introduction-to-Watchdog-Timers). -When your sketch is running�either in the `setup` or during the `loop`�you have to make sure to feed the watchdog periodically. Otherwise "it will bite" and the watchdog reset will stop your sketch. The basic operation is illustrated in the following picture: +When your sketch is running�either in the `setup` or during the `loop`�you have to make sure to feed the watchdog periodically. Otherwise "it will bite" and the watchdog will restart your sketch. The basic operation is illustrated in the following picture: ![wdt basic operation](pictures/wdt_basic_operation.png)