From b587d0d59715fa4d4d0aab4bff059735adf60bdb Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Wed, 12 Mar 2014 15:17:21 +0900 Subject: [PATCH] Copter: pass eeprom start to Mission constructor --- ArduCopter/ArduCopter.pde | 4 ++-- ArduCopter/defines.h | 18 ++++-------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/ArduCopter/ArduCopter.pde b/ArduCopter/ArduCopter.pde index 2574af7a57..d603a33483 100644 --- a/ArduCopter/ArduCopter.pde +++ b/ArduCopter/ArduCopter.pde @@ -353,7 +353,7 @@ AP_AHRS_DCM ahrs(ins, barometer, g_gps); static bool start_command(const AP_Mission::Mission_Command& cmd); static bool verify_command(const AP_Mission::Mission_Command& cmd); static void exit_mission(); -AP_Mission mission(ahrs, &start_command, &verify_command, &exit_mission); +AP_Mission mission(ahrs, &start_command, &verify_command, &exit_mission, MISSION_START_BYTE, MISSION_END_BYTE); //////////////////////////////////////////////////////////////////////////////// // Optical flow sensor @@ -759,7 +759,7 @@ static void pre_arm_checks(bool display_failure); //////////////////////////////////////////////////////////////////////////////// // setup the var_info table -AP_Param param_loader(var_info, WP_START_BYTE); +AP_Param param_loader(var_info, MISSION_START_BYTE); #if MAIN_LOOP_RATE == 400 /* diff --git a/ArduCopter/defines.h b/ArduCopter/defines.h index 982049492f..05f08a2c16 100644 --- a/ArduCopter/defines.h +++ b/ArduCopter/defines.h @@ -296,24 +296,14 @@ enum FlipState { // Centi-degrees to radians #define DEGX100 5729.57795f - -// EEPROM addresses -#define EEPROM_MAX_ADDR 4096 -// parameters get the first 1536 bytes of EEPROM, remainder is for waypoints -#define WP_START_BYTE 0x600 // where in memory home WP is stored + all other - // WP -#define WP_SIZE 15 - // fence points are stored at the end of the EEPROM #define MAX_FENCEPOINTS 6 #define FENCE_WP_SIZE sizeof(Vector2l) -#define FENCE_START_BYTE (EEPROM_MAX_ADDR-(MAX_FENCEPOINTS*FENCE_WP_SIZE)) +#define FENCE_START_BYTE (HAL_STORAGE_SIZE_AVAILABLE-(MAX_FENCEPOINTS*FENCE_WP_SIZE)) -#define MAX_WAYPOINTS ((FENCE_START_BYTE - WP_START_BYTE) / WP_SIZE) - 1 // - - // 1 - // to - // be - // safe +// parameters get the first 1536 bytes of EEPROM, mission commands are stored between these params and the fence points +#define MISSION_START_BYTE 0x600 +#define MISSION_END_BYTE (FENCE_START_BYTE-1) // mark a function as not to be inlined #define NOINLINE __attribute__((noinline))