From f6c8053d0004a4fbace667978e688ae6d8403763 Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 10 Apr 2014 13:36:40 +0200 Subject: [PATCH] Functions signature changed (const void *) for EEPROM / Firmware checks --- radio/src/bootloader/boot.cpp | 2 +- radio/src/targets/sky9x/flash_driver.cpp | 4 +++- radio/src/targets/taranis/board_taranis.h | 4 ++-- radio/src/targets/taranis/flash_driver.cpp | 8 ++++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/radio/src/bootloader/boot.cpp b/radio/src/bootloader/boot.cpp index f5906bf55..6c4516156 100644 --- a/radio/src/bootloader/boot.cpp +++ b/radio/src/bootloader/boot.cpp @@ -361,7 +361,7 @@ FRESULT openBinaryFile(uint32_t index) return f_read(&FlashFile, (BYTE *)Block_buffer, 4096, &BlockCount); } -uint32_t isValidBufferStart(const uint32_t * buffer) +uint32_t isValidBufferStart(const void * buffer) { if (memoryType == MEM_FLASH) return isFirmwareStart(buffer); diff --git a/radio/src/targets/sky9x/flash_driver.cpp b/radio/src/targets/sky9x/flash_driver.cpp index 5d3606395..b7f6d7f2a 100644 --- a/radio/src/targets/sky9x/flash_driver.cpp +++ b/radio/src/targets/sky9x/flash_driver.cpp @@ -56,8 +56,10 @@ void clearLockBits() } } -uint32_t isFirmwareStart(uint32_t *block) +uint32_t isFirmwareStart(const void * buffer) { + const uint32_t * block = (const uint32_t *)buffer; + if ((block[0] & 0xFFFE3000) != 0x20000000 ) { return 0; } diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index 06b592c2a..a66004edf 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -145,8 +145,8 @@ void delay_01us(uint16_t nb); #define FLASH_PAGESIZE 256 void unlockFlash(); void writeFlash(uint32_t * address, uint32_t * buffer); -uint32_t isFirmwareStart(const uint32_t *block); -uint32_t isBootloaderStart(const uint32_t *block); +uint32_t isFirmwareStart(const void * buffer); +uint32_t isBootloaderStart(const void * buffer); // Pulses driver void init_no_pulses(uint32_t port); diff --git a/radio/src/targets/taranis/flash_driver.cpp b/radio/src/targets/taranis/flash_driver.cpp index 001b8e903..a57aac087 100644 --- a/radio/src/targets/taranis/flash_driver.cpp +++ b/radio/src/targets/taranis/flash_driver.cpp @@ -98,8 +98,10 @@ void writeFlash(uint32_t *address, uint32_t *buffer) // page size is 256 bytes } } -uint32_t isFirmwareStart(const uint32_t *block) +uint32_t isFirmwareStart(const void * buffer) { + const uint32_t * block = (const uint32_t *)buffer; + if ((block[0] & 0xFFFC0000) != 0x20000000) { return 0; } @@ -112,8 +114,10 @@ uint32_t isFirmwareStart(const uint32_t *block) return 1; } -uint32_t isBootloaderStart(const uint32_t *block) +uint32_t isBootloaderStart(const void * buffer) { + const uint32_t * block = (const uint32_t *)buffer; + for (int i=0; i<256; i++) { if (block[i] == 0x544F4F42/*BOOT*/) { return 1;