diff --git a/libraries/AP_HAL/HAL.h b/libraries/AP_HAL/HAL.h index 82a810c6c5..ad65858e20 100644 --- a/libraries/AP_HAL/HAL.h +++ b/libraries/AP_HAL/HAL.h @@ -42,7 +42,7 @@ public: scheduler(_scheduler) {} - virtual void init(void* opts) const = 0; + virtual void init(int argc, const char *argv[]) const = 0; AP_HAL::UARTDriver* uartA; AP_HAL::UARTDriver* uartB; diff --git a/libraries/AP_HAL_AVR/AP_HAL_AVR.h b/libraries/AP_HAL_AVR/AP_HAL_AVR.h index 305847cf0e..5e2b6f0b9a 100644 --- a/libraries/AP_HAL_AVR/AP_HAL_AVR.h +++ b/libraries/AP_HAL_AVR/AP_HAL_AVR.h @@ -13,15 +13,16 @@ * and not expose implementation details. */ +#if CONFIG_HAL_BOARD == HAL_BOARD_APM1 || CONFIG_HAL_BOARD == HAL_BOARD_APM2 #define AP_HAL_MAIN() extern "C" {\ int main (void) {\ - hal.init(NULL);\ + hal.init(0, NULL); \ setup();\ for(;;) loop();\ return 0;\ }\ } - +#endif #endif // __AP_HAL_AVR_H__ diff --git a/libraries/AP_HAL_AVR/HAL_AVR.cpp b/libraries/AP_HAL_AVR/HAL_AVR.cpp index 21ecc4b99d..1adcf8f495 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR.cpp +++ b/libraries/AP_HAL_AVR/HAL_AVR.cpp @@ -2,7 +2,7 @@ #include "HAL_AVR.h" using namespace AP_HAL_AVR; -void HAL_AVR::init(void* opts) const { +void HAL_AVR::init(int argc, const char *argv[]) const { scheduler->init((void*)&isr_registry); diff --git a/libraries/AP_HAL_AVR/HAL_AVR.h b/libraries/AP_HAL_AVR/HAL_AVR.h index feb1a6e543..0f6acffbba 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR.h +++ b/libraries/AP_HAL_AVR/HAL_AVR.h @@ -31,7 +31,7 @@ public: _console, _gpio, _rcin, _rcout, _scheduler) {} - void init(void* opts) const; + void init(int argc, const char *argv[]) const; AP_HAL_AVR::ISRRegistry isr_registry; }; #endif // __AP_HAL_AVR_HAL_AVR_H__ diff --git a/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.cpp b/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.cpp index 514057645d..43cd325e5c 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.cpp +++ b/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.cpp @@ -50,7 +50,7 @@ HAL_AVR_APM1::HAL_AVR_APM1() : &avrScheduler ) {} -void HAL_AVR_APM1::init(void* opts) const { +void HAL_AVR_APM1::init(int argc, const char *argv[]) const { scheduler->init((void*)&isrRegistry); diff --git a/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.h b/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.h index 27eed837ad..e343e3bc47 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.h +++ b/libraries/AP_HAL_AVR/HAL_AVR_APM1_Class.h @@ -20,7 +20,7 @@ class HAL_AVR_APM1 : public AP_HAL::HAL { public: HAL_AVR_APM1(); - void init(void* opts) const; + void init(int argc, const char *argv[]) const; }; /** diff --git a/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.cpp b/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.cpp index e30659ddc1..dc69b3e59b 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.cpp +++ b/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.cpp @@ -49,7 +49,7 @@ HAL_AVR_APM2::HAL_AVR_APM2() : &avrScheduler ) {} -void HAL_AVR_APM2::init(void* opts) const { +void HAL_AVR_APM2::init(int argc, const char *argv[]) const { scheduler->init((void*)&isrRegistry); diff --git a/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.h b/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.h index 2072041520..08f30b9a7e 100644 --- a/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.h +++ b/libraries/AP_HAL_AVR/HAL_AVR_APM2_Class.h @@ -20,7 +20,7 @@ class HAL_AVR_APM2 : public AP_HAL::HAL { public: HAL_AVR_APM2(); - void init(void* opts) const; + void init(int argc, const char *argv[]) const; }; /** diff --git a/libraries/AP_HAL_AVR_SITL/AP_HAL_AVR_SITL.h b/libraries/AP_HAL_AVR_SITL/AP_HAL_AVR_SITL.h index 26192824a3..99bf923dff 100644 --- a/libraries/AP_HAL_AVR_SITL/AP_HAL_AVR_SITL.h +++ b/libraries/AP_HAL_AVR_SITL/AP_HAL_AVR_SITL.h @@ -5,5 +5,16 @@ #include "AP_HAL_AVR_SITL_Namespace.h" #include "HAL_AVR_SITL_Class.h" +#if CONFIG_HAL_BOARD == HAL_BOARD_AVR_SITL +#define AP_HAL_MAIN() extern "C" {\ + int main (int argc, const char *argv[]) { \ + hal.init(argc, argv); \ + setup();\ + for(;;) loop();\ + return 0;\ + }\ + } +#endif + #endif // __AP_HAL_AVR_SITL_H__ diff --git a/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.cpp b/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.cpp index 253bf162c6..38518fcc12 100644 --- a/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.cpp +++ b/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.cpp @@ -38,7 +38,7 @@ HAL_AVR_SITL::HAL_AVR_SITL() : &sitlScheduler) /* scheduler */ {} -void HAL_AVR_SITL::init(void* machtnichts) const { +void HAL_AVR_SITL::init(int argc, const char *argv[]) const { scheduler->init(NULL); uartA->begin(115200); diff --git a/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.h b/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.h index 7d57fe6436..f6f5605fd0 100644 --- a/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.h +++ b/libraries/AP_HAL_AVR_SITL/HAL_AVR_SITL_Class.h @@ -12,7 +12,7 @@ class HAL_AVR_SITL : public AP_HAL::HAL { public: HAL_AVR_SITL(); - void init(void*) const; + void init(int argc, const char *argv[]) const; }; extern const HAL_AVR_SITL AP_HAL_AVR_SITL;