Andrew Tridgell
ae4bcf0f6f
AP_Scheduler: cope with high CPU load by stretching loop times
...
this adds an extra budget of time per loop when we are not achieving
scheduled tasks at a rate of at least 1/8 of the desired rate. This
fixes an issue where a vehicle can become uncontrollable if the user
asks for a SCHED_LOOP_RATE which is not achievable. As these events
happen we add extra loop budget until we are able to run all tasks. We
drop the extra time when the CPU pressure eases.
2019-09-22 21:08:34 +10:00
Andrew Tridgell
49061aae67
AP_Scheduler: use persistent_data for current_task
2019-05-15 15:33:48 +10:00
Peter Barker
85b737db31
AP_Scheduler: add floating point specifier on constant
2019-04-05 23:04:17 -07:00
Tom Pittenger
e9bb6a7d69
AP_Scheduler: rename dataflash to logger
2019-03-28 16:40:57 +11:00
Tom Pittenger
155a1b7ec7
AP_Scheduler: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07:00
Peter Barker
01e0c03a12
AP_Scheduler: add singleton
2018-06-15 08:01:22 +10:00
Andrew Tridgell
8907cb3b23
AP_Scheduler: time in seconds should be a float
2018-02-13 17:15:05 +11:00
Andrew Tridgell
491715bec7
AP_Scheduler: added get_last_loop_time_s()
...
this gives compatibility with previous G_Dt in copter
2018-02-13 17:15:05 +11:00
Andrew Tridgell
e0c9d9b592
AP_Scheduler: fixed loop time available
2018-02-13 17:15:05 +11:00
Andrew Tridgell
620d6ab4b8
AP_Scheduler: fixed merge issues
2018-02-13 17:15:05 +11:00
Peter Barker
73c0905b5e
AP_Scheduler: pass log-performance-bit at init time rather than update time
2018-02-13 17:15:05 +11:00
Peter Barker
4672e9d4eb
AP_Scheduler: resolve debug name conflict
2018-02-13 17:15:05 +11:00
Peter Barker
d3c1b720c6
AP_Scheduler: move logging of PM messages to AP_Scheduler
2018-02-13 17:15:05 +11:00
Peter Barker
d151b27e92
AP_Scheduler: move PERF: statustext sending into AP_Scheduler
2018-02-13 17:15:05 +11:00
Peter Barker
4909000441
AP_Scheduler: implement loop()
2018-02-13 17:15:05 +11:00
Peter Barker
e713802c24
AP_Scheduler: add accessor for tick counter
2018-02-13 17:15:05 +11:00
Andrew Tridgell
8b0e9bcff4
AP_Scheduler: use pre-computed loop constants
...
this prevents changing the loop rate without a reboot. Too many
subsystems rely on a consistent loop rate to allow it to be changed
2018-01-20 15:35:58 +11:00
Peter Barker
f2242e07db
AP_Scheduler: remove memoisation in loop_period_s()
2018-01-20 15:35:58 +11:00
Peter Barker
a6ac37d0ba
AP_Scheduler: eliminate MAIN_LOOP_SECONDS macro
2018-01-20 15:35:58 +11:00
Andrew Tridgell
580af4a69a
AP_Scheduler: removed create() method for objects
...
See discussion here:
https://github.com/ArduPilot/ardupilot/issues/7331
we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach
Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Lucas De Marchi
d3e12eb899
AP_Scheduler: add static create method
2017-09-26 03:01:21 +01:00
Peter Barker
b445313bf1
AP_Scheduler: remove loop-period argument from load_average
...
This now comes from a parameter rather than being hard-set
in the vehicle code
Also adds a method returning the max loop period based on the
loop rate
2017-08-01 19:39:27 +01:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
murata
bb1a787852
AP_Scheduler: To add a comment to _loop_rate_hz variable.
2016-10-16 00:02:40 -07:00
murata
7721290160
AP_Scheduler:time_available value type invalid uint16_t to valid uint32_t.
2016-07-25 20:18:16 -03:00
Andrew Tridgell
ced4cce358
AP_Scheduler: added optional perf counters at SCHED_DEBUG >= 4
2016-04-21 16:45:02 +10:00
Lucas De Marchi
f5437f30ac
AP_Scheduler: replace header guard with pragma once
2016-02-18 14:52:35 -02:00
Andrew Tridgell
1b1be7e4a2
AP_Scheduler: switch to Hz based scheduler config
2015-12-27 14:57:06 +09:00
Gustavo Jose de Sousa
8fe466ce27
AP_Scheduler: add initializer for task field "name"
...
We use define it as an empty macro if on AVR board.
2015-09-01 20:22:18 +10:00
Gustavo Jose de Sousa
8018748fe2
AP_Scheduler: add field "name" to task structure for logging purposes
...
That field will be useful for logging as it is easier to know what task a log
is related to by using the task's name rather than using the number.
2015-09-01 20:22:18 +10:00
Gustavo Jose de Sousa
c04b984e6c
AP_Scheduler: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:38:23 +10:00
Andrew Tridgell
dd691ae75c
AP_Scheduler: all vehicles now use functors
2015-06-01 15:18:31 +10:00
Andrew Tridgell
7db9da6545
AP_Scheduler: removed delegate ptr handling
...
no longer needed
2015-05-26 14:33:30 +10:00
Lucas De Marchi
78b00784fb
AP_Scheduler: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
5dfb3ed70c
AP_Scheduler: replace tabs with spaces
2015-05-26 13:46:49 +10:00
Andrew Tridgell
0847bd2608
AP_Scheduler: use APM_BUILD_DELEGATES
2015-05-21 07:48:51 +10:00
Andrew Tridgell
1237772479
AP_Scheduler: support member functions for rover
2015-05-21 07:48:46 +10:00
Andrew Tridgell
67f5ba0b94
AP_Scheduler: added current_task static
...
will be used to debug stuck tasks on PX4
2014-07-03 09:09:11 +10:00
Andrew Tridgell
dd4b9275fd
AP_Scheduler: improved the accuracy of the scheduling code
...
prevent accumulated micros() errors in run()
2013-10-10 14:14:39 +11:00
Andrew Tridgell
97b7130bb9
libraries: update license header to GPLv3
...
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10:00
Andrew Tridgell
a192b9ee46
AP_Scheduler: added load_average() function
...
useful to give a load average in SYS_STATUS mavlink message
2013-07-26 16:07:00 +10:00
Andrew Tridgell
1cb64dacf9
AP_Scheduler: expose debug variable
2013-01-12 12:06:55 +11:00
Andrew Tridgell
7ddadcf34e
AP_Scheduler: added new scheduler library
...
this will be used for main loop control
2013-01-12 12:02:57 +11:00