mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-23 13:24:03 +08:00
[settings] void pointer to PersistentSettings struct instead of uint32_t
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
#define PERSISTENT_SETTINGS_FILE "pprz_persistent_settings.binary"
|
||||
#endif
|
||||
|
||||
int32_t persistent_write(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_write(void *ptr, uint32_t size)
|
||||
{
|
||||
FILE *file= fopen(PERSISTENT_SETTINGS_FILE, "wb");
|
||||
if (file != NULL) {
|
||||
@@ -46,7 +46,7 @@ int32_t persistent_write(uint32_t ptr, uint32_t size)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int32_t persistent_read(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_read(void *ptr, uint32_t size)
|
||||
{
|
||||
FILE *file= fopen(PERSISTENT_SETTINGS_FILE, "rb");
|
||||
if (file != NULL) {
|
||||
|
||||
@@ -245,7 +245,7 @@ static int32_t pflash_program_bytes(FlashInfo *flash,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t persistent_write(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_write(void *ptr, uint32_t size)
|
||||
{
|
||||
FlashInfo flash_info;
|
||||
|
||||
@@ -253,12 +253,12 @@ int32_t persistent_write(uint32_t ptr, uint32_t size)
|
||||
if ((size > flash_info.page_size - FSIZ) || (size == 0)) { return -2; }
|
||||
|
||||
return pflash_program_bytes(&flash_info,
|
||||
ptr,
|
||||
(uint32_t)ptr,
|
||||
size,
|
||||
pflash_checksum(ptr, size));
|
||||
pflash_checksum((uint32_t)ptr, size));
|
||||
}
|
||||
|
||||
int32_t persistent_read(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_read(void *ptr, uint32_t size)
|
||||
{
|
||||
FlashInfo flash;
|
||||
uint32_t i;
|
||||
@@ -276,7 +276,7 @@ int32_t persistent_read(uint32_t ptr, uint32_t size)
|
||||
|
||||
/* copy data */
|
||||
for (i = 0; i < size; i++) {
|
||||
*(uint8_t *)(ptr + i) = *(uint8_t *)(flash.addr + i);
|
||||
*(uint8_t *)((uint32_t)ptr + i) = *(uint8_t *)(flash.addr + i);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
|
||||
#include "subsystems/settings.h"
|
||||
|
||||
int32_t persistent_write(uint32_t ptr UNUSED, uint32_t size UNUSED)
|
||||
int32_t persistent_write(void *ptr UNUSED, uint32_t size UNUSED)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int32_t persistent_read(uint32_t ptr UNUSED, uint32_t size UNUSED)
|
||||
int32_t persistent_read(void *ptr UNUSED, uint32_t size UNUSED)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -247,19 +247,19 @@ static int32_t pflash_program_bytes(struct FlashInfo *flash __attribute__((unuse
|
||||
#endif
|
||||
|
||||
|
||||
int32_t persistent_write(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_write(void *ptr, uint32_t size)
|
||||
{
|
||||
struct FlashInfo flash_info;
|
||||
if (flash_detect(&flash_info)) { return -1; }
|
||||
if ((size > flash_info.page_size - FSIZ) || (size == 0)) { return -2; }
|
||||
|
||||
return pflash_program_bytes(&flash_info,
|
||||
ptr,
|
||||
(uint32_t)ptr,
|
||||
size,
|
||||
pflash_checksum(ptr, size));
|
||||
pflash_checksum((uint32_t)ptr, size));
|
||||
}
|
||||
|
||||
int32_t persistent_read(uint32_t ptr, uint32_t size)
|
||||
int32_t persistent_read(void *ptr, uint32_t size)
|
||||
{
|
||||
struct FlashInfo flash;
|
||||
uint32_t i;
|
||||
@@ -277,7 +277,7 @@ int32_t persistent_read(uint32_t ptr, uint32_t size)
|
||||
|
||||
/* copy data */
|
||||
for (i = 0; i < size; i++) {
|
||||
*(uint8_t *)(ptr + i) = *(uint8_t *)(flash.addr + i);
|
||||
*(uint8_t *)((uint32_t)ptr + i) = *(uint8_t *)(flash.addr + i);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -41,7 +41,7 @@ bool_t settings_store_flag;
|
||||
void settings_init(void)
|
||||
{
|
||||
#if USE_PERSISTENT_SETTINGS
|
||||
if (persistent_read((uint32_t)&pers_settings, sizeof(struct PersistentSettings))) {
|
||||
if (persistent_read((void *)&pers_settings, sizeof(struct PersistentSettings))) {
|
||||
return; // return -1 ?
|
||||
}
|
||||
/* from generated/settings.h */
|
||||
@@ -58,7 +58,7 @@ int32_t settings_store(void)
|
||||
if (settings_store_flag) {
|
||||
/* from generated/settings.h */
|
||||
persistent_settings_store();
|
||||
if (!persistent_write((uint32_t)&pers_settings, sizeof(struct PersistentSettings))) {
|
||||
if (!persistent_write((void *)&pers_settings, sizeof(struct PersistentSettings))) {
|
||||
/* persistent write was successful */
|
||||
settings_store_flag = TRUE;
|
||||
return 0;
|
||||
|
||||
@@ -38,8 +38,8 @@ extern bool_t settings_store_flag;
|
||||
#define settings_StoreSettings(_v) { settings_store_flag = _v; settings_store(); }
|
||||
|
||||
/* implemented in arch dependant code */
|
||||
int32_t persistent_write(uint32_t ptr, uint32_t size);
|
||||
int32_t persistent_read(uint32_t ptr, uint32_t size);
|
||||
int32_t persistent_write(void *ptr, uint32_t size);
|
||||
int32_t persistent_read(void *ptr, uint32_t size);
|
||||
|
||||
|
||||
#endif /* SUBSYSTEMS_SETTINGS_H */
|
||||
|
||||
Reference in New Issue
Block a user