Andrew Tridgell
63d0c040e4
AP_Scheduler: expose loop rate on all builds
...
as discussed with Randy
2016-06-17 15:02:28 +10:00
Andrew Tridgell
fb4cdafef8
AP_Scheduler: allow SCHED_LOOP_RATE for copter in SITL
...
very useful for slow simulation environment
2016-06-17 15:01:18 +10: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
Gustavo Jose de Sousa
c2e3f05dbf
waf: ardupilotwaf: prefix build context methods with ap_
...
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
3d22490397
waf: examples: use methods from bld instead of ardupilotwaf
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
d281067bcc
waf: make example binaries be placed in 'examples' dir
...
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Andrew Tridgell
cc25575b3a
AP_Scheduler: prevent a startup crash in autotest for Rover
2016-01-05 16:31:06 +11:00
Andrew Tridgell
c3829dfb64
AP_Scheduler: allow for arbitrary loop rates
...
it turns out 300Hz is pretty useful as it allows for triple EKF on
pixhawk
2016-01-04 08:37:31 +11:00
Jonathan Challinger
94543d55bb
AP_Scheduler: fix example build
2015-12-29 10:46:35 -08:00
Lucas De Marchi
a096703b06
Global: don't link with AP_Progmem
...
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Lucas De Marchi
eb9fd96d5c
AP_Scheduler: remove trailing whitespace
2015-12-27 15:58:12 -02:00
Lucas De Marchi
3375b6b01c
AP_Scheduler: stop using Progmem.h
2015-12-27 15:58:12 -02:00
Andrew Tridgell
1b1be7e4a2
AP_Scheduler: switch to Hz based scheduler config
2015-12-27 14:57:06 +09:00
Lucas De Marchi
c59490677d
AP_Scheduler: remove unused AP_ADC_AnalogSource
2015-12-03 13:32:44 +11:00
Caio Marcelo de Oliveira Filho
6e7b73610d
waf: add waf support
2015-12-03 07:54:30 +11:00
Caio Marcelo de Oliveira Filho
81186e5416
AP_Scheduler: use millis/micros/panic functions
2015-11-20 12:34:17 +09:00
Lucas De Marchi
5244559010
Minimize AP_Progmem.h includes
...
Most of AP_Progmem is already gone so we can stop including it in most
of the places. The only places that need it are the ones using
pgm_read_*() APIs.
In some cases the header needed to be added in the .cpp since it was
removed from the .h to reduce scope. In those cases the headers were
also reordered.
2015-10-30 14:35:32 +09:00
Lucas De Marchi
20c6ffc5e3
Replace use of UARTDriver::printf_P() with UARTDriver::printf()
...
This also starts to show warnings on places that were already using
wrong printf format strings.
2015-10-30 14:35:25 +09:00
Lucas De Marchi
831d8acca5
Remove use of PROGMEM
...
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:
git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'
The 2 commands were done so we don't leave behind spurious spaces.
AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Lucas De Marchi
2c38e31c93
Remove use of PSTR
...
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.
This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.
AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00
Caio Marcelo de Oliveira Filho
12850742f9
AP_Scheduler: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
ec52df991c
build: compile only the HAL files needed by the board
...
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
2e464a53c2
AP_HAL: make code not depend on concrete HAL implementations
...
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.
A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.
The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.
Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.
The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
Randy Mackay
87cada1d54
Scheduler: remove INS start style from example sketch
2015-09-21 17:06:25 +09:00
Gustavo Jose de Sousa
53b5b70960
AP_Scheduler: use also task name besides the id for logging
...
This makes it easier to identify for which task a log line is.
2015-09-01 20:22:19 +10:00
Gustavo Jose de Sousa
b59154103f
AP_Scheduler: use function name for AP_Scheduler task name
...
That makes it easier to identify tasks when debug is enabled in AP_Scheduler.
2015-09-01 20:22:19 +10: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
2e6074c108
AP_Scheduler: use designated initializers for tasks structs
...
Makes code less prone to break build and semantics (e.g., when a new field is
added).
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
Daniel Frenzel
b9c0f34897
AP_Scheduler example
...
Fixed build problem with "make linux"
Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-08-10 19:49:38 +10:00
rentt
ad32a98e29
Scheduler: fix compiler warning in example sketch
...
printf except a unsigned long value, but the hal.scheduler->millis() return a uint32_t
2015-07-28 12:06:46 +09:00
Lucas De Marchi
d8b70dc0c5
AP_Scheduler: use ARRAY_SIZE macro
2015-07-21 14:25:13 +09:00
Lucas De Marchi
98a1a05933
AP_Scheduler: stop using alias FUNCTOR_BIND_VOID
2015-06-04 13:37:40 +09:00
Andrew Tridgell
b2a5de8a63
AP_Scheduler: fixed example sketch
2015-06-01 17:42:32 +10:00
Andrew Tridgell
ae4cfe3f2f
AP_Scheduler: convert example from .pde to .cpp
2015-06-01 17:07:06 +10:00
Andrew Tridgell
dd691ae75c
AP_Scheduler: all vehicles now use functors
2015-06-01 15:18:31 +10:00
Andrew Tridgell
96b921d4cc
AP_Scheduler: fixed example build
2015-05-26 14:37:14 +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
8ba5272b0e
AP_Scheduler: fixed PSTR() usage
2015-05-05 13:54:27 +10:00
Tom Pittenger
d823541eb1
AP_Scheduler: compile warnings: format not a string literal, argument types not checked
...
PSTR() goofs things up when using hal.console->printf_P()
2015-05-05 13:27:01 +10:00
Andrew Tridgell
a4e8d960d2
AP_Scheduler: fix for HAL_SITL rename
2015-05-05 09:45:56 +10:00
Randy Mackay
75e2498da2
Scheduler: fix example sketch
2015-05-02 11:55:50 +09:00
Randy Mackay
857c3ef0e9
Scheduler: fix example sketch
2015-01-28 17:15:51 +09:00
Andrew Tridgell
48abfcede7
AP_Scheduler: added example sketch
2014-11-28 12:59:47 +11: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
c4d62f6b92
AP_Scheduler: fixed SCHED_DEBUG docs
2013-10-13 21:41:01 +11:00
Andrew Tridgell
0f4da25e68
AP_Scheduler: make sure we run remaining tasks on overrun
...
when a task overruns its time, we can still run the rest of the tasks
in the task list
2013-10-13 21:41:01 +11:00
Andrew Tridgell
cfa1b5353f
AP_Scheduler: show slips only for SCHED_DEBUG>1
...
this allows us to see PERF reports in copter without console writes
slowing things down
2013-10-10 15:41:34 +11: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
e8fc8cea01
AP_Scheduler: updated docs
2013-08-30 15:33:30 +10: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
b7e3851ef8
AP_Scheduler: prevent a divide by zero
2013-08-02 22:07:00 +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
c437900a49
AP_Scheduler: added SCHED_DEBUG=2
...
used to show overruns and slips
2013-04-21 23:46:35 +10:00
Andrew Tridgell
02bd24cf57
AP_Scheduler: fixed _last_run initialisation
...
another valgrind bug
2013-04-17 23:02:13 +10:00
Andrew Tridgell
64734dc51c
AP_Scheduler: show scheduler task slips
...
this is when a task doesn't run at the desired rate
2013-01-12 13:04:52 +11: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