Commit Graph

25420 Commits (eb4b323e2e91dd382f8f44fa68e2acea16ca815b)

Author SHA1 Message Date
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
Filip Jagodzinski 95f38c3383 Watchdog: Fix unittests
Compare get_timeout against the last timeout successfully set.
Merge most of the test cases into one. Do not rely on the tests
execution order.
Fix the watchdog_api_stub to keep timeout value set by init function.
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
Filip Jagodzinski a7178b3519 Test: Watchdog: Fix test_restart case
Watchdog::stop() is called in this test. If the target does not support
stopping the watchdog this case needs to be skipped.
Also improve handling ignored test cases.
2019-07-11 11:55:28 +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
Martin Kojtal 1acd3d3db3 VirtualWatchdog: process fail test expects 0 as reset - no ticker running 2019-07-11 11:55:28 +01:00
Filip Jagodzinski fd92a22993 Test: Watchdog: Fix astyle errors 2019-07-11 11:55:28 +01:00
Filip Jagodzinski be6a26e0ef Test: WatchdogManager: Remove tests
This component no longer exists in Mbed OS.
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 9c6cd2b669 Test: Watchdog: Add new driver tests 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
Filip Jagodzinski 664c6ab82d Fix unittest errors 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 90033869d9 unittest: add virtualwatchdog stub 2019-07-11 11:55:26 +01:00
Martin Kojtal b40258b1ef watchdog unittest: fix naming after refactor 2019-07-11 11:55:26 +01:00
Martin Kojtal d7e2943fbe unittest: remove platform watchdog (moved to drivers) 2019-07-11 11:55:26 +01:00
Martin Kojtal 45a16847df unittest: move watchdog files to drivers
Test VirtualWatchdog and Watchdog
2019-07-11 11:55:26 +01:00
Martin Kojtal f30558bb37 unittest: rename watchdog to VirtualWatchdog 2019-07-11 11:55:26 +01:00
Martin Kojtal bc8fc539b6 Watchdog: update unittests 2019-07-11 11:55:25 +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 4ad585bb37 error: add watchdog driver error 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