From b91f40eb94772541bf58cec3472bedabdf86e5f0 Mon Sep 17 00:00:00 2001 From: Stacey Sheldon Date: Fri, 30 Dec 2011 13:15:39 -0500 Subject: [PATCH] iap: extend API to support read/write of boot counter Also clean up unused/obsolete definitions. --- flight/PiOS/Common/pios_iap.c | 21 ++++++++++----------- flight/PiOS/inc/pios_iap.h | 15 +++------------ 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/flight/PiOS/Common/pios_iap.c b/flight/PiOS/Common/pios_iap.c index b9a71a331..bb679f067 100644 --- a/flight/PiOS/Common/pios_iap.c +++ b/flight/PiOS/Common/pios_iap.c @@ -20,17 +20,6 @@ #define IAP_MAGIC_WORD_1 0x1122 #define IAP_MAGIC_WORD_2 0xAA55 -#define IAP_REQLOC_1 BKP_DR1 -#define IAP_CRCLOC_LOW BKP_DR2 -#define IAP_CRCLOC_UPPER BKP_DR3 -#define IAP_PORTLOC BKP_DR4 -#define IAP_REQLOC_2 BKP_RR5 - -#define IAP_UPLOAD_REQ_1 0x20AA -#define IAP_UPLOAD_REQ_2 0x2055 -#define IAP_DNLOAD_REQ_1 0x30AA -#define IAP_DNLOAD_REQ_2 0x3055 - #define UPPERWORD16(lw) (uint16_t)((uint32_t)(lw)>>16) #define LOWERWORD16(lw) (uint16_t)((uint32_t)(lw)&0x0000ffff) #define UPPERBYTE(w) (uint8_t)((w)>>8) @@ -121,3 +110,13 @@ void PIOS_IAP_ClearRequest(void) BKP_WriteBackupRegister( MAGIC_REG_1, 0); BKP_WriteBackupRegister( MAGIC_REG_2, 0); } + +uint16_t PIOS_IAP_ReadBootCount(void) +{ + return BKP_ReadBackupRegister ( IAP_BOOTCOUNT ); +} + +void PIOS_IAP_WriteBootCount (uint16_t boot_count) +{ + BKP_WriteBackupRegister ( IAP_BOOTCOUNT, boot_count ); +} diff --git a/flight/PiOS/inc/pios_iap.h b/flight/PiOS/inc/pios_iap.h index aae0132f0..1f67d651f 100644 --- a/flight/PiOS/inc/pios_iap.h +++ b/flight/PiOS/inc/pios_iap.h @@ -19,27 +19,18 @@ ****************************************************************************************/ #define MAGIC_REG_1 BKP_DR1 #define MAGIC_REG_2 BKP_DR2 -#define IAP_COMM BKP_DR3 - -#define IAP_COMM_INVALID 0 -#define IAP_COMM_USB 1 -#define IAP_COMM_TELEMETRY 2 -#define IAP_COMM_SPI_AHRS 3 -#define IAP_COMM_I2C 4 -// Additional types can be added along with the proper support code. +#define IAP_BOOTCOUNT BKP_DR3 /**************************************************************************************** * Public Functions ****************************************************************************************/ void PIOS_IAP_Init(void); -uint32_t PIOS_IAP_CRCVerify( void ); uint32_t PIOS_IAP_CheckRequest( void ); -void PIOS_IAP_SetCommInput( uint16_t comm ); -uint16_t PIOS_IAP_GetCommInput( void ); void PIOS_IAP_SetRequest1(void); void PIOS_IAP_SetRequest2(void); void PIOS_IAP_ClearRequest(void); -void PIOS_IAP_SetCRC( uint32_t crcval ); +uint16_t PIOS_IAP_ReadBootCount(void); +void PIOS_IAP_WriteBootCount(uint16_t); /**************************************************************************************** * Public Data