Commit Graph

370 Commits (mbed-os-5.13)

Author SHA1 Message Date
Filip Jagodzinski de7896ba23 Watchdog: Fix astyle in doxy 2019-07-11 12:13:15 +01:00
Amanda Butler 27dff4aada Edit Watchdog.h
Edit file to address comments and for consistent tense and voice.
2019-07-11 12:13:02 +01:00
Filip Jagodzinski 223d6c4a9d Watchdog: Clean up the doxygen comments 2019-07-11 12:12:51 +01:00
Martin Kojtal c1c132930d Watchdog: start without arg uses max timeout from a target 2019-07-11 11:55:30 +01:00
Martin Kojtal 8de11211d7 Watchdog: remove VirtualWatchdog
We will provide documentation how to create your own VirtualWatchdog. It's simple,
create timeout and watchdog objects.

This class brought lot of discussion and questions. After our refactor we made this class
just a linked list of objects - something tickers can do as well (they already have linked list) and handling hw should be
done via Watchdog due to the limitations (timeout can be set only once per app!).
2019-07-11 11:55:29 +01:00
Martin Kojtal 6850afc9b0 VirtualWatchdog: use timeout in ctor to set hw timeout
No config, neither additional parameter - the first instance of the class initalizes the peripheral.
2019-07-11 11:55:29 +01:00
Martin Kojtal 8024e405f8 Watchdog: remove config value for timeout, set it dynamically
Use start method to set timeout
2019-07-11 11:55:29 +01:00
Martin Kojtal 66a195c19f VirtualWatchdog: provide hw timeout via ctor 2019-07-11 11:55:29 +01:00
Martin Kojtal b2da4a5722 VirtualWatchdog: add comment about exclusive access to Watchdog 2019-07-11 11:55:29 +01:00
Martin Kojtal 4310bd6b9e VirtualWatchdog: fix doxygen ingroup and ctor 2019-07-11 11:55:29 +01:00
Martin Kojtal a415e44875 Watchdog: add docs update about intention one vs multiple Watchdogs
VirtualWatchdog - multiple timers in the system - most used watchdog
Watchdog - simple driver for one system timer in the app - bootloader or similar
2019-07-11 11:55:28 +01:00
Filip Jagodzinski bcffbb5c54 Watchdog: Fix timeout constraints
Update the start method to check 0 < timeout <= max_timeout.
2019-07-11 11:55:28 +01:00
Filip Jagodzinski db52d0068e Fix more unittest errors 2019-07-11 11:55:27 +01:00
Martin Kojtal c9e26ec44b Watchdog: fix space in code example 2019-07-11 11:55:27 +01:00
Martin Kojtal 0414278d80 Watchdog: example code - add kick() 2019-07-11 11:55:27 +01:00
Martin Kojtal 09dc0cd758 virtualWatchdog: fix alignment for tickers and one space 2019-07-11 11:55:27 +01:00
Martin Kojtal 9c2f1d237e virtualWatchdog: fix alignment for tickers 2019-07-11 11:55:27 +01:00
Martin Kojtal c4eeb5ecbd VirtualWatchdog: fix missing kick and init check in process
Also syntax error for ticker definitions.
2019-07-11 11:55:26 +01:00
Martin Kojtal 23af0d9f92 Watchdog: keep it simple - providing simple driver functionality
No callbacks or tickers. User is handling kick() method directly based on timeout set.
VirtualWatchdog manages ticker and callback.
2019-07-11 11:55:25 +01:00
Martin Kojtal 2fe571ec7e Watchdog: fix include paths - use module name 2019-07-11 11:55:25 +01:00
Martin Kojtal 5c486f716e VirtualWatchdog: fix default timeout value (1ms is unreal) 2019-07-11 11:55:25 +01:00
Martin Kojtal bd74f9f81f VirtualWatchdog: fix name for member timeout 2019-07-11 11:55:25 +01:00
Martin Kojtal 014d80b07b VirtualWatchdog: fix is hw init definition 2019-07-11 11:55:25 +01:00
Martin Kojtal 2775c49b53 VirtualWatchdog: add config option to ctor to clarify the hw timeout 2019-07-11 11:55:25 +01:00
Martin Kojtal 4bcdd435ab Watchdog: fix timeout - use full range for watchdog 2019-07-11 11:55:24 +01:00
Martin Kojtal 659e5051f3 Watchdog: fix callback - uses ms 2019-07-11 11:55:24 +01:00
Martin Kojtal 760ccbe0a4 VirtualWatchdog: fix doxygen docs errors 2019-07-11 11:55:24 +01:00
Martin Kojtal 17d559993b Watchdog: refactor timeout handling
Enable kicking directly by kick() and handle timeout by using private handler.
2019-07-11 11:55:24 +01:00
Martin Kojtal d0be8e4543 Watchdog: add missing docs doxygen 2019-07-11 11:55:23 +01:00
Martin Kojtal 45b7d617bb Watchdog: remove dead reference file 2019-07-11 11:55:23 +01:00
Martin Kojtal a8e5861692 VirtualWatchdog: fix error code and timeout 2019-07-11 11:55:23 +01:00
Martin Kojtal 885332bef3 Watchdog: fix const static
Fixing error "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
2019-07-11 11:55:22 +01:00
Filip Jagodzinski 01490b555d Watchdog & VirtualWatchdog process() update
Add uint32 argument - pass how much time already passed to the callback.
2019-07-11 11:55:22 +01:00
Martin Kojtal cfcad68255 VirtualWatchdog: make sure we are the only owner of watchdog
If virtual one is not the only owner we error - init error code in driver.
2019-07-11 11:55:22 +01:00
Martin Kojtal b85fedd6d8 Watchdog: clean-up start 2019-07-11 11:55:22 +01:00
Martin Kojtal 1624b9d17f watchdog: fix astyle errors 2019-07-11 11:55:21 +01:00
Martin Kojtal 33f3587377 watchdog: remove manager
Watchdog can handle callbacks - VirtualManager can attach to the tick. This should simplify the logic.

Watchdog can tick on its own using tickers.
VirtualWatchdog uses attach to get a callback when Watchdog ticks - to process own
linked list of virtual watchdogs.
2019-07-11 11:55:21 +01:00
Martin Kojtal c97f95817c watchdog: add WatchdogManager
Watchdog should be usable on it's own - kicking it via ticker. No Virtual involved.
VirtualWatchdog as well - services should use this one to have multiple one in the system.

There's WatchdogManager - basically internal class to manage ticker for Watchdog.
2019-07-11 11:55:21 +01:00
Martin Kojtal 1c5097af49 Watchdog: fix dtor 2019-07-11 11:55:21 +01:00
Martin Kojtal df03c527e9 Watchdog: kick method should not have any external dep 2019-07-11 11:55:21 +01:00
Martin Kojtal f0c050dace Watchdog: cleanup after singleton usage 2019-07-11 11:55:20 +01:00
Martin Kojtal 17470b8a74 VirtualWatchdog: fix protection macro 2019-07-11 11:55:20 +01:00
Martin Kojtal 6ab79c93d4 Watchdog: use get_instance to access watchdog hw 2019-07-11 11:55:20 +01:00
Martin Kojtal d7cba43afd VirtualWatchdog: software watchdog
Refactor old Watchdog (it was not a driver) to become VirtualWatchdog.
This is software virtual watchdog. This it the primary used watchdog in user application.

VirtualWatchdog: has-a watchdog. Initializes hw watchdog - start it when first used, stops it when there is no more VirtualWatchdog in the system -
list is empty.

Adding also check to watchdog to make sure there is only one in the system - runtime error if multiple objects created to already
running hw watchdog.
2019-07-11 11:55:20 +01:00
Martin Kojtal cd8ac1e132 Watchdog: refactor driver
Watchdog is hardware driver. It interacts with HAL - provides wrapper to interact with the peripheral.

Provides basic functionality: start/stop, get timeout/max timeout.
It is automatically kicked by a timer, according to the timeout set in ctor.
2019-07-11 11:55:20 +01:00
Amanda Butler 1869a1d4a7 Edit ResetReason.h
Edit file for active voice, complete sentences and grammar.
2019-07-11 11:55:19 +01:00
Amanda Butler aa9941805c Edit Watchdog.h
Edit file, mostly for active voice, consistent abbreviations, grammar and spelling.
2019-07-11 11:55:19 +01:00
Filip Jagodzinski df372fd19e ResetReason: Update the header file
Minor doxygen fixes.
2019-07-11 11:55:18 +01:00
Martin Kojtal 2a26e1af4b watchdog: fix copyright 2019-07-11 11:55:18 +01:00
Rajkumar Kanagaraj 5150b37aea Update Watchdog
- Changed the process into static method
 - used the singletonptr for creating the low power ticker instance
 - Added the mbed stub into cmake build for cellularnonipsocket,loramacrypto
2019-07-11 11:55:15 +01:00