Paparazzi UAS
v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
|
Persistent settings low level flash routines lpc21. More...
Go to the source code of this file.
Data Structures | |
struct | FlashInfo |
Macros | |
#define | IAP_LOCATION 0x7FFFFFF1 |
#define | IAP_PREPARE_SECTORS 50 |
#define | IAP_COPY_RAM_TO_FLASH 51 |
#define | IAP_ERASE_SECTORS 52 |
#define | IAP_BLANK_CHECK_SECTORS 53 |
#define | IAP_READ_PART_ID 54 |
#define | IAP_COMPARE 56 |
#define | BOUND 256 |
#define | FSIZ 8 |
#define | FCHK 4 |
Typedefs | |
typedef void(* | IAP )(uint32_t[], uint32_t[]) |
Functions | |
static uint32_t | pflash_checksum (uint32_t ptr, uint32_t size) |
static int32_t | flash_detect (FlashInfo *flash) |
static int32_t | pflash_erase_page (FlashInfo *flash) |
static int32_t | pflash_program_array (FlashInfo *flash, uint32_t dest, uint32_t src) |
static int32_t | pflash_program_bytes (FlashInfo *flash, uint32_t src, uint32_t size, uint32_t chksum) |
int32_t | persistent_write (void *ptr, uint32_t size) |
int32_t | persistent_read (void *ptr, uint32_t size) |
int32_t | persistent_clear (void) |
Persistent settings low level flash routines lpc21.
Persistent settings low level flash routines stm32.
LPC2148 flash data is located in the last available page
0x00000000: Paparazzi bootloader (16k) 0x00004000: Paparazzi code (480k) 0x0007C000: persistent settings (4k) 0x0007D000: Philips/NXP bootloader (12k)
data flash_addr data_size flash_end - FSIZ checksum flash_end - FCHK
LPC21: minimum write size 256 bytes, endurance 100k cycles, max sector erase time 400ms, max prog time 1ms per 256 bytes
data flash_addr data_size flash_end - FSIZ checksum flash_end - FCHK
STM32: minimum write size 2 bytes, endurance 10k cycles, max sector erase time 40ms, max prog time 70us per 2 bytes
Definition in file settings_arch.c.
struct FlashInfo |
#define BOUND 256 |
Definition at line 58 of file settings_arch.c.
Referenced by pflash_program_array(), and pflash_program_bytes().
#define FCHK 4 |
Definition at line 61 of file settings_arch.c.
Referenced by persistent_read(), and pflash_program_bytes().
#define FSIZ 8 |
Definition at line 60 of file settings_arch.c.
Referenced by persistent_read(), persistent_write(), and pflash_program_bytes().
#define IAP_BLANK_CHECK_SECTORS 53 |
Definition at line 53 of file settings_arch.c.
Referenced by pflash_erase_page().
#define IAP_COMPARE 56 |
Definition at line 55 of file settings_arch.c.
#define IAP_COPY_RAM_TO_FLASH 51 |
Definition at line 51 of file settings_arch.c.
Referenced by pflash_program_array().
#define IAP_ERASE_SECTORS 52 |
Definition at line 52 of file settings_arch.c.
Referenced by pflash_erase_page().
#define IAP_LOCATION 0x7FFFFFF1 |
Definition at line 48 of file settings_arch.c.
Referenced by flash_detect(), pflash_erase_page(), and pflash_program_array().
#define IAP_PREPARE_SECTORS 50 |
Definition at line 50 of file settings_arch.c.
Referenced by pflash_erase_page(), and pflash_program_array().
#define IAP_READ_PART_ID 54 |
Definition at line 54 of file settings_arch.c.
Referenced by flash_detect().
Definition at line 63 of file settings_arch.c.
Definition at line 96 of file settings_arch.c.
References FlashInfo::addr, disableIRQ(), enableIRQ(), IAP_LOCATION, IAP_READ_PART_ID, FlashInfo::page_nr, and FlashInfo::page_size.
Referenced by persistent_clear(), persistent_read(), and persistent_write().
int32_t persistent_clear | ( | void | ) |
Definition at line 285 of file settings_arch.c.
References flash_detect(), and pflash_erase_page().
Definition at line 261 of file settings_arch.c.
References FlashInfo::addr, FCHK, flash_detect(), FSIZ, FlashInfo::page_size, and pflash_checksum().
Definition at line 248 of file settings_arch.c.
References flash_detect(), FSIZ, FlashInfo::page_size, pflash_checksum(), and pflash_program_bytes().
Definition at line 84 of file settings_arch.c.
Referenced by persistent_read(), and persistent_write().
Definition at line 136 of file settings_arch.c.
References disableIRQ(), enableIRQ(), IAP_BLANK_CHECK_SECTORS, IAP_ERASE_SECTORS, IAP_LOCATION, IAP_PREPARE_SECTORS, and FlashInfo::page_nr.
Referenced by persistent_clear(), and pflash_program_bytes().
Definition at line 171 of file settings_arch.c.
References BOUND, CCLK, dest, disableIRQ(), enableIRQ(), IAP_COPY_RAM_TO_FLASH, IAP_LOCATION, IAP_PREPARE_SECTORS, and FlashInfo::page_nr.
Referenced by pflash_program_bytes().
|
static |
Definition at line 203 of file settings_arch.c.
References FlashInfo::addr, BOUND, FCHK, FSIZ, FlashInfo::page_size, pflash_erase_page(), and pflash_program_array().
Referenced by persistent_write().