Commit Graph
115 Commits
Author SHA1 Message Date
Peter Duerr 453937a89a Fix va_arg calls (always call va_end)
From the manpage: "Each invocation of va_start() must be matched by a
corresponding invocation of va_end() in the same function."
2017-08-07 22:05:54 +02:00
Lorenz Meier 61b0a81bf9 HITL startup: Further simplification of boot logic in commander 2017-07-29 23:06:50 +02:00
Beat Küng d7703173b2 Critical: Fixes Snapdragon Flight parameter synchronization problem (#6910)
* cmake: Fixes problem caused when the generated parameters.xml differs for the ARM and DSP builds.

* fix px4_getopt.h: add accidentally removed file
2017-03-28 16:10:17 +02:00
Beat Küng b4290b6b52 params: make param_t uint16_t on NuttX
param_t is only used as an offset and we have <1000 params, so an uint16_t
is enough.
This saves roughly 1KB of RAM. We only do that on NuttX because normal
integers have better performance in general.
Previously on amd64, this was even 64bits because it was an uintptr_t.
2017-03-14 21:30:53 +01:00
jwilson 62200e2a81 WIP: Temporary fix for a problem which prevents arming on the Snapdragon Flight board. 2017-03-10 08:54:08 +01:00
jwilson 4f9245cc9c Resolves a conflict in the type of the index parameter in the dm_read and dm_write function signature, caused by a recent change in the dataman code. This problem was causing the loading of the flight stack to fail on the aDSP. 2017-03-08 15:04:20 +08:00
Beat Küng df8f0da70c param & param_shmem: enable locking
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.

On NuttX this could lead to hardfaults in rare conditions.

Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
2017-02-17 11:27:08 +01:00
Larry Wang 72ea5c53db qurt px4_layer initialize shared memory (#6453) 2017-01-27 17:59:12 -05:00
wangxdflight b693e29d64 enable px4 flight for excelsior(legacy) 2017-01-16 08:25:58 -08:00
Carlo Wood de85fbe1dc Remaining fixes needed before running Tools/fix_headers.sh
<systemlib/err.h> --> "systemlib/err.h" that fix_headers.sh
would miss because it comes after code it doesn't understand.

Effectively remove the '__EXPORT extern perf_counter_t perf_alloc('
line, because currently perf_alloc is defined to be NULL, and
after running fix_headers.sh that happens *before* this header
is included (the order of headers will be changed).

Do not define NULL to be (void*)0: that only works for C.
In fact, the conversions needed for NULL are so full of exceptions
that standard C++ introduced a new *keyword*: nullptr.
That's what we really should be using for C++ code.
In this case I just include the correct header to define NULL
the correct way.

Not really related to the header line:
Removed an #include <time.h> because I noted that px4_time.h
was already included... and moved a #include <sys/time.h>
to the top of the file (not really a fan of including headers
in the middle unless absolutely necessary).
Removed a include of queue.h because I noted it wasn't used.
2016-11-13 19:36:27 +01:00
Carlo Wood 6fc30c76a6 Clean up of app.h
app.h, generated from app.h_in, has unnecessary code duplication
and isn't a header file (it defines globals, static functions
and doesn't have a header guard, moreover, it has a 'using namespace
std;'). Because of this, a real headerfile that declares the stuff
defined in apps.h was missing leading to even more code duplication:
scattered forward declarations in .cpp files and an often repeated
type of std::map<std::string, px4_main_t>.

This patch moves cmake/qurt/apps.h_in to src/platforms/apps.cpp.in
(with some changes) and removes cmake/posix/apps.h_in.
Then src/platforms/apps.cpp.in is split into src/platforms/apps.cpp.in
and src/platforms/apps.h.in, splitting declarations from definitions.

A typedef is defined for the map (apps_map_type).

The main difference between cmake/posix/apps.h_in and
cmake/qurt/apps.h_in was that the first defined a global 'apps',
while qurt stores the apps in QShell. I opted to get rid of
the global variable (which are in general evil for various reasons)
and used the API of cmake/qurt/apps.h_in where a provided 'apps'
map is initialized with a call to init_app_map. Thus removing
the existing code duplication.
2016-10-22 08:31:14 +02:00
Gene 5cd85b98c2 Fixed app args buffer overrun in qurt px4_layer main.cpp and qshell.cpp 2016-10-06 11:06:57 +02:00
Beat Küng 1d111cb254 px4_getpid: return the taskmap index instead of pthread_self()
this makes it consistent with other functions, like px4_task_spawn_cmd()
and px4_task_kill()
2016-09-30 13:50:51 +02:00
Julian Oes 8ff237c69f Remove size optimization for individual modules
It makes more sense to set the optimization flags on a platform basis
instead of individually for each module. This allows for different
optimization options for SITL, NuttX, Snapdragon, etc.
2016-09-30 08:11:51 +02:00
Lorenz Meier 5b69e58925 Provide macros and extensions to the task spawn command to set the stack sizes right 2016-09-11 20:07:30 +02:00
James Goppert 818840b576 Path cleanup, low impact changes (#5340)
* Low impact changes from path_cleanup branch.

This is a step towards minimizing the diff with path_cleanup branch.

* Update ecl.

* Revert matrix update.

* Revert ecl and matrix.

* Update sitl gazebo.

* Revert sitl_gazebo and matrix changes.
2016-08-18 15:37:23 -04:00
Lorenz Meier a0cad961b3 Remove non-used app from config 2016-08-07 11:12:20 +02:00
Lorenz Meier 102f5b54d7 Revert "Improvements to SITL to make paths more flexible. (#5181)"
This reverts commit 699b6a2cb3.
2016-08-05 21:29:49 +02:00
James Goppert 699b6a2cb3 Improvements to SITL to make paths more flexible. (#5181) 2016-08-05 06:23:59 -04:00
James Goppert b6a9ff756c Rename mainapp to px4. 2016-07-29 11:05:01 +02:00
Beat Küng 8a12dee125 cmake: remove all module.mk files & cmake conversion script (#4918)
It seems these files are leftovers.
2016-06-28 09:26:36 +02:00
jwilson 9794bb2f2f Running fix_code_style.sh on the requested source files. 2016-06-22 08:57:06 +02:00
jwilson acc1f04b67 Unfortunately, lot's of whitespace changes, required to satisfy unspecified code style format errors. 2016-06-22 08:57:06 +02:00
jwilson a73ac821ab Fixes shared memory locking bug and eliminates the need for an AppsProm driver to reserve a shared memory region. 2016-06-22 08:57:06 +02:00
Beat Küng fcab80bfee getprogname: rename to px4_get_taskname 2016-06-09 15:22:29 +02:00
Julian Oes 953984dd48 QURT px4_layer: getpid can shut up 2016-06-07 22:10:56 +02:00
Julian Oes a2865cd5c1 QURT px4_layer: removed debug printfs 2016-06-07 22:10:56 +02:00
Julian Oes 8e47f612fd QURT main: more precise printfs 2016-06-07 22:10:56 +02:00
Julian Oes 7a29cf0f13 QURT main: less debug printfs 2016-06-07 22:10:56 +02:00
Mark Charlebois 02e3f28d87 Added back support for SDK 2.0 as well as 3.0
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois 6ac0eabb5a Changes required to support Hexagon SDK 3.0
The inc and lib directories were renamed to incs and libs.

This requires an updated cmake_hexagon and come changes to qurt paths in
PX4.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Daniel Agar 2487dbfc92 remove Wpacked and cleanup unused warning flags 2016-05-19 21:49:34 +02:00
Beat Küng 42a9d5651f platform: some code cleanup for px4_{posix,qurt}_tasks.cpp
- __BEGIN_DECLS is for declarations not definitions
- getprogname() declaration is in err.h
2016-05-11 15:56:50 +02:00
Julian Oes 6c61b67fd5 shmem: fix eagle build 2016-05-05 14:28:35 +02:00
Julian Oes ea3adee28a shmem_qurt: fix format 2016-04-26 10:23:39 +02:00
Julian Oes e3c9135ac2 param_shmem: fix bug where params didn't stick
There was the case where a param was changed on the Linux side but the
change did not get saved on the DSP side because the param was not in
the local list of changed params on the DSP side. On save, the param
index is now refreshed, and param_get is called on all params that have
changed. This is a hacky workaround but resolves the problem for now.
2016-04-26 10:21:01 +02:00
Julian Oes ee7b9751ce px4_layer: removed leftover printf lie 2016-03-27 12:40:10 +02:00
Julian Oes ef8d074e23 shmem_qurt: remove leftover printf 2016-03-09 11:10:19 -08:00
Julian Oes 022ced3648 shmem: don't do locking for now
The locking seems to be broken, therefore refrain from using it.
2016-03-09 11:07:34 -08:00
Julian Oes 46a6176e2a px4_layer: astyle 2016-02-19 16:59:49 +01:00
jwilson 75fad09263 Fixed problem causing a failure to obtain the shared memory lock on the AppsProc. 2016-02-19 16:59:49 +01:00
jwilson d84639f8c4 This code is flyable, but a few problems exist which cause values in the .config files to be overwritten by the defaults in the .XML file. 2016-02-19 16:59:49 +01:00
jwilson 2b4b9aa103 Debug statements included in the code. 2016-02-19 16:59:49 +01:00
Julian Oes 928a31b59a QURT: use drv_hrt.c from POSIX 2016-02-19 16:59:47 +01:00
Julian Oes b2ad3f5fbd POSIX: get px4_poll right
Like this the timeouts are going through instead of hanging everything.
2016-02-19 16:59:47 +01:00
Julian Oes 9e77f554d2 px4_qurt_tasks: fix timeout calculation
It was wrong to subtract seconds and nanoseconds from each other. This
will wrap, therefore use ts_to_abstime and do the subtraction
afterwards.
2016-02-19 16:59:47 +01:00
Julian Oes dbd89fe584 px4_qurt_tasks: fix hang because of absolute time
The timeout was triggered using absolute time instead of a delay in
usec. This lead to the system hanging. With the fix it continues after
the timeout, however, the rates still don't seem right.
2016-02-19 16:59:47 +01:00
Julian Oes c726e2b807 px4_qurt_tasks: fix header 2016-02-19 16:59:47 +01:00
Julian Oes ec8a58a9ac df_imu: get the accel to publish to uORB 2016-02-19 16:59:46 +01:00
Mark Charlebois 791ec37f43 Code formatter fixes
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-02-19 16:59:46 +01:00