1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

Merge pull request #8773 from OTAkeys/pr/flashpage_const_ptr

drivers/flashpage: use const pointers for write and verify
This commit is contained in:
Francisco Acosta 2018-03-14 19:08:49 +01:00 committed by GitHub
commit 4f190015a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 19 additions and 19 deletions

View File

@ -26,12 +26,12 @@
#include "em_msc.h" #include "em_msc.h"
void flashpage_write(int page, void *data) void flashpage_write(int page, const void *data)
{ {
assert(page < (int)FLASHPAGE_NUMOF); assert(page < (int)FLASHPAGE_NUMOF);
uint32_t *page_addr = (uint32_t *)flashpage_addr(page); uint32_t *page_addr = (uint32_t *)flashpage_addr(page);
uint32_t *data_addr = (uint32_t *)data; const uint32_t *data_addr = data;
MSC_Init(); MSC_Init();
MSC_ErasePage(page_addr); MSC_ErasePage(page_addr);

View File

@ -24,11 +24,11 @@
#include "irq.h" #include "irq.h"
#include "periph/flashpage.h" #include "periph/flashpage.h"
void flashpage_write(int page, void *data) void flashpage_write(int page, const void *data)
{ {
assert(page < FLASHPAGE_NUMOF); assert(page < FLASHPAGE_NUMOF);
uint8_t *src = (uint8_t *)data; const uint8_t *src = data;
uint8_t *dst = (uint8_t *)flashpage_addr(page); uint8_t *dst = (uint8_t *)flashpage_addr(page);
unsigned istate; unsigned istate;

View File

@ -23,12 +23,12 @@
#include "assert.h" #include "assert.h"
#include "periph/flashpage.h" #include "periph/flashpage.h"
void flashpage_write(int page, void *data) void flashpage_write(int page, const void *data)
{ {
assert(page < (int)FLASHPAGE_NUMOF); assert(page < (int)FLASHPAGE_NUMOF);
uint32_t *page_addr = (uint32_t *)flashpage_addr(page); uint32_t *page_addr = (uint32_t *)flashpage_addr(page);
uint32_t *data_addr = (uint32_t *)data; const uint32_t *data_addr = data;
/* erase given page */ /* erase given page */
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Een; NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Een;

View File

@ -56,7 +56,7 @@ static void _lock(void)
#endif #endif
} }
void flashpage_write_raw(void *target_addr, void *data, size_t len) void flashpage_write_raw(void *target_addr, const void *data, size_t len)
{ {
/* The actual minimal block size for writing is 16B, thus we /* The actual minimal block size for writing is 16B, thus we
* assert we write on multiples and no less of that length. * assert we write on multiples and no less of that length.
@ -72,7 +72,7 @@ void flashpage_write_raw(void *target_addr, void *data, size_t len)
(CPU_FLASH_BASE + (FLASHPAGE_SIZE * FLASHPAGE_NUMOF))); (CPU_FLASH_BASE + (FLASHPAGE_SIZE * FLASHPAGE_NUMOF)));
uint32_t *dst = (uint32_t *)target_addr; uint32_t *dst = (uint32_t *)target_addr;
uint32_t *data_addr = (uint32_t *)data; const uint32_t *data_addr = data;
/* write 4 bytes in one go */ /* write 4 bytes in one go */
len /= 4; len /= 4;
@ -88,7 +88,7 @@ void flashpage_write_raw(void *target_addr, void *data, size_t len)
_lock(); _lock();
} }
void flashpage_write(int page, void *data) void flashpage_write(int page, const void *data)
{ {
assert(page < FLASHPAGE_NUMOF); assert(page < FLASHPAGE_NUMOF);

View File

@ -126,7 +126,7 @@ static void _erase_page(void *page_addr)
#endif #endif
} }
void flashpage_write_raw(void *target_addr, void *data, size_t len) void flashpage_write_raw(void *target_addr, const void *data, size_t len)
{ {
/* assert multiples of FLASHPAGE_RAW_BLOCKSIZE are written and no less of /* assert multiples of FLASHPAGE_RAW_BLOCKSIZE are written and no less of
that length. */ that length. */
@ -142,10 +142,10 @@ void flashpage_write_raw(void *target_addr, void *data, size_t len)
#if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32L1) #if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32L1)
uint32_t *dst = target_addr; uint32_t *dst = target_addr;
uint32_t *data_addr = (uint32_t *)data; const uint32_t *data_addr = data;
#else #else
uint16_t *dst = (uint16_t *)target_addr; uint16_t *dst = (uint16_t *)target_addr;
uint16_t *data_addr = (uint16_t *)data; const uint16_t *data_addr = data;
uint32_t hsi_state = (RCC->CR & RCC_CR_HSION); uint32_t hsi_state = (RCC->CR & RCC_CR_HSION);
/* the internal RC oscillator (HSI) must be enabled */ /* the internal RC oscillator (HSI) must be enabled */
@ -181,7 +181,7 @@ void flashpage_write_raw(void *target_addr, void *data, size_t len)
#endif #endif
} }
void flashpage_write(int page, void *data) void flashpage_write(int page, const void *data)
{ {
assert(page < (int)FLASHPAGE_NUMOF); assert(page < (int)FLASHPAGE_NUMOF);

View File

@ -130,7 +130,7 @@ static inline int flashpage_page(void *addr)
* @param[in] data data to write to the page, MUST be FLASHPAGE_SIZE * @param[in] data data to write to the page, MUST be FLASHPAGE_SIZE
* byte. Set to NULL for page erase only. * byte. Set to NULL for page erase only.
*/ */
void flashpage_write(int page, void *data); void flashpage_write(int page, const void *data);
/** /**
* @brief Write any number of data bytes to a given location in the * @brief Write any number of data bytes to a given location in the
@ -153,7 +153,7 @@ void flashpage_write(int page, void *data);
* ensure it doesn't exceed the actual flash * ensure it doesn't exceed the actual flash
* memory size. * memory size.
*/ */
void flashpage_write_raw(void *target_addr, void *data, size_t len); void flashpage_write_raw(void *target_addr, const void *data, size_t len);
/** /**
* @brief Read the given page into the given memory location * @brief Read the given page into the given memory location
@ -174,7 +174,7 @@ void flashpage_read(int page, void *data);
* @return FLASHPAGE_OK if data in the page is identical to @p data * @return FLASHPAGE_OK if data in the page is identical to @p data
* @return FLASHPAGE_NOMATCH if data and page content diverge * @return FLASHPAGE_NOMATCH if data and page content diverge
*/ */
int flashpage_verify(int page, void *data); int flashpage_verify(int page, const void *data);
/** /**
* @brief Write the given page and verify the results * @brief Write the given page and verify the results
@ -188,7 +188,7 @@ int flashpage_verify(int page, void *data);
* @return FLASHPAGE_OK on success * @return FLASHPAGE_OK on success
* @return FLASHPAGE_NOMATCH if data and page content diverge * @return FLASHPAGE_NOMATCH if data and page content diverge
*/ */
int flashpage_write_and_verify(int page, void *data); int flashpage_write_and_verify(int page, const void *data);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -35,7 +35,7 @@ void flashpage_read(int page, void *data)
memcpy(data, flashpage_addr(page), FLASHPAGE_SIZE); memcpy(data, flashpage_addr(page), FLASHPAGE_SIZE);
} }
int flashpage_verify(int page, void *data) int flashpage_verify(int page, const void *data)
{ {
assert(page < (int)FLASHPAGE_NUMOF); assert(page < (int)FLASHPAGE_NUMOF);
@ -47,7 +47,7 @@ int flashpage_verify(int page, void *data)
} }
} }
int flashpage_write_and_verify(int page, void *data) int flashpage_write_and_verify(int page, const void *data)
{ {
flashpage_write(page, data); flashpage_write(page, data);
return flashpage_verify(page, data); return flashpage_verify(page, data);