Browse Source

Merge pull request #2212 from mcharleb/multi-os-support

Fix double build when using new make target syntax
sbg
Lorenz Meier 10 years ago
parent
commit
283baff956
  1. 15
      Makefile
  2. 13
      src/drivers/device/vdev.cpp
  3. 3
      src/modules/simulator/simulator.cpp
  4. 5
      src/platforms/posix/px4_layer/work_thread.c
  5. 9
      src/platforms/px4_log.h

15
Makefile

@ -37,6 +37,7 @@ TARGETS := nuttx posix qurt
EXPLICIT_TARGET := $(filter $(TARGETS),$(MAKECMDGOALS)) EXPLICIT_TARGET := $(filter $(TARGETS),$(MAKECMDGOALS))
ifneq ($(EXPLICIT_TARGET),) ifneq ($(EXPLICIT_TARGET),)
export PX4_TARGET_OS=$(EXPLICIT_TARGET) export PX4_TARGET_OS=$(EXPLICIT_TARGET)
export GOALS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
endif endif
# #
@ -277,14 +278,12 @@ testbuild:
$(Q) (cd $(PX4_BASE) && $(MAKE) distclean && $(MAKE) archives && $(MAKE) -j8) $(Q) (cd $(PX4_BASE) && $(MAKE) distclean && $(MAKE) archives && $(MAKE) -j8)
$(Q) (zip -r Firmware.zip $(PX4_BASE)/Images) $(Q) (zip -r Firmware.zip $(PX4_BASE)/Images)
nuttx: nuttx posix qurt:
make PX4_TARGET_OS=$@ $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) ifeq ($(GOALS),)
make PX4_TARGET_OS=$@ $(GOALS)
posix: else
make PX4_TARGET_OS=$@ $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) export PX4_TARGET_OS=$@
endif
qurt:
make PX4_TARGET_OS=$@ $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
posixrun: posixrun:
Tools/posix_run.sh Tools/posix_run.sh

13
src/drivers/device/vdev.cpp

@ -64,7 +64,7 @@ private:
px4_dev_t() {} px4_dev_t() {}
}; };
#define PX4_MAX_DEV 30 #define PX4_MAX_DEV 50
static px4_dev_t *devmap[PX4_MAX_DEV]; static px4_dev_t *devmap[PX4_MAX_DEV];
/* /*
@ -99,7 +99,7 @@ VDev::~VDev()
int int
VDev::register_class_devname(const char *class_devname) VDev::register_class_devname(const char *class_devname)
{ {
PX4_DEBUG("VDev::register_class_devname"); PX4_DEBUG("VDev::register_class_devname %s", class_devname);
if (class_devname == nullptr) { if (class_devname == nullptr) {
return -EINVAL; return -EINVAL;
} }
@ -124,7 +124,7 @@ VDev::register_class_devname(const char *class_devname)
int int
VDev::register_driver(const char *name, void *data) VDev::register_driver(const char *name, void *data)
{ {
PX4_DEBUG("VDev::register_driver"); PX4_DEBUG("VDev::register_driver %s", name);
int ret = -ENOSPC; int ret = -ENOSPC;
if (name == NULL || data == NULL) if (name == NULL || data == NULL)
@ -145,14 +145,17 @@ VDev::register_driver(const char *name, void *data)
break; break;
} }
} }
if (ret != PX4_OK) {
PX4_ERR("No free devmap entries - increase PX4_MAX_DEV");
}
return ret; return ret;
} }
int int
VDev::unregister_driver(const char *name) VDev::unregister_driver(const char *name)
{ {
PX4_DEBUG("VDev::unregister_driver"); PX4_DEBUG("VDev::unregister_driver %s", name);
int ret = -ENOSPC; int ret = -EINVAL;
if (name == NULL) if (name == NULL)
return -EINVAL; return -EINVAL;

3
src/modules/simulator/simulator.cpp

@ -63,6 +63,9 @@ Simulator *Simulator::getInstance()
bool Simulator::getMPUReport(uint8_t *buf, int len) bool Simulator::getMPUReport(uint8_t *buf, int len)
{ {
// Reads are paced from reading gyrosim and if
// we don't delay here we read too fast
usleep(50000);
return _mpu.copyData(buf, len); return _mpu.copyData(buf, len);
} }

5
src/platforms/posix/px4_layer/work_thread.c

@ -138,10 +138,11 @@ static void work_process(FAR struct wqueue_s *wqueue, int lock_id)
work_unlock(lock_id); work_unlock(lock_id);
if (!worker) { if (!worker) {
printf("MESSED UP: worker = 0\n"); PX4_ERR("MESSED UP: worker = 0");
} }
else else {
worker(arg); worker(arg);
}
/* Now, unfortunately, since we re-enabled interrupts we don't /* Now, unfortunately, since we re-enabled interrupts we don't
* know the state of the work list and we will have to start * know the state of the work list and we will have to start

9
src/platforms/px4_log.h

@ -50,7 +50,6 @@
printf(__VA_ARGS__);\ printf(__VA_ARGS__);\
printf(" (file %s line %d)\n", __FILE__, __LINE__);\ printf(" (file %s line %d)\n", __FILE__, __LINE__);\
} }
#if defined(__PX4_QURT) #if defined(__PX4_QURT)
#include <stdio.h> #include <stdio.h>
@ -61,8 +60,14 @@
#elif defined(__PX4_LINUX) #elif defined(__PX4_LINUX)
#include <stdio.h> #include <stdio.h>
#include <pthread.h>
#define __px4_log_threads(level, ...) { \
printf("%-5s %ld ", level, pthread_self());\
printf(__VA_ARGS__);\
printf(" (file %s line %d)\n", __FILE__, __LINE__);\
}
//#define PX4_DEBUG(...) { }
#define PX4_DEBUG(...) __px4_log_omit("DEBUG", __VA_ARGS__); #define PX4_DEBUG(...) __px4_log_omit("DEBUG", __VA_ARGS__);
#define PX4_INFO(...) __px4_log("INFO", __VA_ARGS__); #define PX4_INFO(...) __px4_log("INFO", __VA_ARGS__);
#define PX4_WARN(...) __px4_log_verbose("WARN", __VA_ARGS__); #define PX4_WARN(...) __px4_log_verbose("WARN", __VA_ARGS__);

Loading…
Cancel
Save