Martin Kojtal
25fbd3956b
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-02 12:46:23 +01:00
Filip Jagodzinski
968e270b0b
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-02 12:46:23 +01:00
Martin Kojtal
dc4d4a32f4
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-02 12:46:23 +01:00
Martin Kojtal
fd445a57cb
Watchdog: remove config value for timeout, set it dynamically
...
Use start method to set timeout
2019-07-02 12:46:23 +01:00
Martin Kojtal
6313e530b3
VirtualWatchdog: provide hw timeout via ctor
2019-07-02 12:46:23 +01:00
Martin Kojtal
7b341847c4
VirtualWatchdog: add comment about exclusive access to Watchdog
2019-07-02 12:46:23 +01:00
Martin Kojtal
29842f98a0
VirtualWatchdog: fix doxygen ingroup and ctor
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
b89eeb7ec5
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-02 12:46:23 +01:00
Martin Kojtal
dc2e8ab35e
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-02 12:46:23 +01:00
Martin Kojtal
89c0ab793e
VirtualWatchdog: process fail test expects 0 as reset - no ticker running
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
9e2a1816bb
Test: Watchdog: Fix astyle errors
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
7ab0a35fdf
Test: WatchdogManager: Remove tests
...
This component no longer exists in Mbed OS.
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
a810ef807f
Watchdog: Fix timeout constraints
...
Update the start method to check 0 < timeout <= max_timeout.
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
a5ad5e04ca
Test: Watchdog: Add new driver tests
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
cc7a3dd677
Fix more unittest errors
2019-07-02 12:46:23 +01:00
Martin Kojtal
ff0652830a
Watchdog: fix space in code example
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
1c12f9b2b0
Fix unittest errors
2019-07-02 12:46:23 +01:00
Martin Kojtal
188655f929
Watchdog: example code - add kick()
2019-07-02 12:46:23 +01:00
Martin Kojtal
6b26b23d7b
virtualWatchdog: fix alignment for tickers and one space
2019-07-02 12:46:23 +01:00
Martin Kojtal
72582b0622
virtualWatchdog: fix alignment for tickers
2019-07-02 12:46:23 +01:00
Martin Kojtal
2c6357b098
VirtualWatchdog: fix missing kick and init check in process
...
Also syntax error for ticker definitions.
2019-07-02 12:46:23 +01:00
Martin Kojtal
529f4a2a7e
unittest: add virtualwatchdog stub
2019-07-02 12:46:23 +01:00
Martin Kojtal
33f8b35917
watchdog unittest: fix naming after refactor
2019-07-02 12:46:23 +01:00
Martin Kojtal
8231efc41c
unittest: remove platform watchdog (moved to drivers)
2019-07-02 12:46:23 +01:00
Martin Kojtal
4549a22566
unittest: move watchdog files to drivers
...
Test VirtualWatchdog and Watchdog
2019-07-02 12:46:23 +01:00
Martin Kojtal
8bbba26842
unittest: rename watchdog to VirtualWatchdog
2019-07-02 12:46:23 +01:00
Martin Kojtal
2d77fccb09
Watchdog: update unittests
2019-07-02 12:46:23 +01:00
Martin Kojtal
bb473d916e
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-02 12:46:23 +01:00
Martin Kojtal
28398e6254
Watchdog: fix include paths - use module name
2019-07-02 12:46:23 +01:00
Martin Kojtal
a63a54680c
VirtualWatchdog: fix default timeout value (1ms is unreal)
2019-07-02 12:46:23 +01:00
Martin Kojtal
88a9548167
VirtualWatchdog: fix name for member timeout
2019-07-02 12:46:23 +01:00
Martin Kojtal
a18ba70c1b
VirtualWatchdog: fix is hw init definition
2019-07-02 12:46:23 +01:00
Martin Kojtal
61f859b514
VirtualWatchdog: add config option to ctor to clarify the hw timeout
2019-07-02 12:46:23 +01:00
Martin Kojtal
9f48f26876
Watchdog: fix timeout - use full range for watchdog
2019-07-02 12:46:23 +01:00
Martin Kojtal
b822c09b3b
Watchdog: fix callback - uses ms
2019-07-02 12:46:23 +01:00
Martin Kojtal
0519caebe1
VirtualWatchdog: fix doxygen docs errors
2019-07-02 12:46:23 +01:00
Martin Kojtal
581bf208ad
Watchdog: refactor timeout handling
...
Enable kicking directly by kick() and handle timeout by using private handler.
2019-07-02 12:46:23 +01:00
Martin Kojtal
0aa095b944
Watchdog: add missing docs doxygen
2019-07-02 12:46:23 +01:00
Martin Kojtal
f7ccd06685
Watchdog: remove dead reference file
2019-07-02 12:46:23 +01:00
Martin Kojtal
400a7e4b77
error: add watchdog driver error
2019-07-02 12:46:23 +01:00
Martin Kojtal
1c0f1880eb
VirtualWatchdog: fix error code and timeout
2019-07-02 12:46:23 +01:00
Martin Kojtal
02936376ae
Watchdog: fix const static
...
Fixing error "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
2019-07-02 12:46:23 +01:00
Filip Jagodzinski
455015daf5
Watchdog & VirtualWatchdog process() update
...
Add uint32 argument - pass how much time already passed to the callback.
2019-07-02 12:46:23 +01:00
Martin Kojtal
701d8f7cef
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-02 12:46:23 +01:00
Martin Kojtal
a3599414e1
Watchdog: clean-up start
2019-07-02 12:46:23 +01:00
Martin Kojtal
b166acd1cb
watchdog: fix astyle errors
2019-07-02 12:46:23 +01:00
Martin Kojtal
f98c2fdbba
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-02 12:46:23 +01:00
Martin Kojtal
698b0eda8a
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-02 12:46:23 +01:00
Martin Kojtal
a668454de4
Watchdog: fix dtor
2019-07-02 12:46:23 +01:00
Martin Kojtal
bb1cc32a25
Watchdog: kick method should not have any external dep
2019-07-02 12:46:23 +01:00