From a0b7453580c18c400caa165f4af9b7ddea090a15 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Mon, 26 Mar 2012 00:16:28 -0500 Subject: [PATCH] Make the firmwareIAP variable not a global --- flight/Modules/FirmwareIAP/firmwareiap.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/flight/Modules/FirmwareIAP/firmwareiap.c b/flight/Modules/FirmwareIAP/firmwareiap.c index aaf2622bd..0a88046b8 100644 --- a/flight/Modules/FirmwareIAP/firmwareiap.c +++ b/flight/Modules/FirmwareIAP/firmwareiap.c @@ -66,8 +66,6 @@ static portTickType lastResetSysTime; // Private functions static void FirmwareIAPCallback(UAVObjEvent* ev); -FirmwareIAPObjData data; - static uint32_t get_time(void); // Private types @@ -96,6 +94,9 @@ int32_t FirmwareIAPInitialize() const struct pios_board_info * bdinfo = &pios_board_info_blob; + FirmwareIAPObjData data; + FirmwareIAPObjGet(&data); + data.BoardType= bdinfo->board_type; PIOS_BL_HELPER_FLASH_Read_Description(data.Description,FIRMWAREIAPOBJ_DESCRIPTION_NUMELEM); PIOS_SYS_SerialNumberGetBinary(data.CPUSerial); @@ -125,6 +126,9 @@ static void FirmwareIAPCallback(UAVObjEvent* ev) if(iap_state == IAP_STATE_RESETTING) return; + + FirmwareIAPObjData data; + FirmwareIAPObjGet(&data); if ( ev->obj == FirmwareIAPObjHandle() ) { // Get the input object data @@ -238,7 +242,10 @@ static void resetTask(UAVObjEvent * ev) #if defined (PIOS_LED_ALARM) PIOS_LED_Toggle(PIOS_LED_ALARM); #endif /* PIOS_LED_ALARM */ - + + FirmwareIAPObjData data; + FirmwareIAPObjGet(&data); + if((portTickType) (xTaskGetTickCount() - lastResetSysTime) > RESET_DELAY / portTICK_RATE_MS) { lastResetSysTime = xTaskGetTickCount(); data.BoardType=0xFF;