Wirepas SDK
wms_memory_area.h
Go to the documentation of this file.
1 /* Copyright 2018 Wirepas Ltd. All Rights Reserved.
2  *
3  * See file LICENSE.txt for full license details.
4  *
5  */
6 
20 #ifndef APP_LIB_MEMORY_AREA_H_
21 #define APP_LIB_MEMORY_AREA_H_
22 
23 #include <stdlib.h>
24 #include <stdint.h>
25 #include <stdbool.h>
26 
27 #include "wms_app.h"
28 
30 #define APP_LIB_MEMORY_AREA_NAME 0x01fd3b49
31 
33 #define APP_LIB_MEMORY_AREA_VERSION 0x200
34 
36 typedef enum
37 {
54 
60 #define APP_LIB_MEM_AREA_MAX_AREAS 16
61 
63 typedef uint32_t app_lib_mem_area_id_t;
64 
71 typedef enum
72 {
78 
85 typedef struct
86 {
103  uint32_t byte_write_time;
105  uint32_t page_write_time;
121 
128 typedef struct
129 {
133  size_t area_size;
141 
142 
161  app_lib_mem_area_id_t id, void * to, uint32_t from, size_t amount);
162 
187  app_lib_mem_area_id_t id, uint32_t to, const void * from, size_t amount);
188 
209  uint32_t * sector_base,
210  size_t * number_of_sector);
211 
219 
232 
243  uint8_t * num_areas);
244 
248 typedef struct
249 {
257 
258 #endif /* APP_LIB_MEMORY_AREA_H_ */
app_lib_mem_area_info_t::external_flash
bool external_flash
Definition: wms_memory_area.h:137
app_lib_mem_area_info_t
memory area information
Definition: wms_memory_area.h:128
app_lib_mem_area_info_t::type
app_lib_mem_area_type_e type
Definition: wms_memory_area.h:139
app_lib_mem_area_flash_info_t::sector_erase_time
uint32_t sector_erase_time
Definition: wms_memory_area.h:107
app_lib_mem_area_id_t
uint32_t app_lib_mem_area_id_t
Memory Area id definition.
Definition: wms_memory_area.h:63
app_lib_mem_area_startWrite_f
app_lib_mem_area_res_e(* app_lib_mem_area_startWrite_f)(app_lib_mem_area_id_t id, uint32_t to, const void *from, size_t amount)
Block write to a memory area.
Definition: wms_memory_area.h:186
wms_app.h
APP_LIB_MEM_AREA_TYPE_USER
@ APP_LIB_MEM_AREA_TYPE_USER
Definition: wms_memory_area.h:76
app_lib_memory_area_t::startErase
app_lib_mem_area_startErase_f startErase
Definition: wms_memory_area.h:252
app_lib_memory_area_t::getAreaList
app_lib_mem_area_getAreaList_f getAreaList
Definition: wms_memory_area.h:255
app_lib_mem_area_flash_info_t::byte_write_call_time
uint32_t byte_write_call_time
Definition: wms_memory_area.h:110
app_lib_mem_area_isBusy_f
bool(* app_lib_mem_area_isBusy_f)(app_lib_mem_area_id_t id)
Checks if underlying flash driver is busy.
Definition: wms_memory_area.h:218
app_lib_mem_area_startErase_f
app_lib_mem_area_res_e(* app_lib_mem_area_startErase_f)(app_lib_mem_area_id_t id, uint32_t *sector_base, size_t *number_of_sector)
Erase one or multiple sectors in the memory area.
Definition: wms_memory_area.h:207
app_lib_mem_area_flash_info_t::sector_erase_call_time
uint32_t sector_erase_call_time
Definition: wms_memory_area.h:116
app_lib_mem_area_flash_info_t
Information on flash peripheral.
Definition: wms_memory_area.h:85
APP_LIB_MEM_AREA_RES_INVALID_TAG
@ APP_LIB_MEM_AREA_RES_INVALID_TAG
Definition: wms_memory_area.h:52
APP_LIB_MEM_AREA_TYPE_APPLICATION
@ APP_LIB_MEM_AREA_TYPE_APPLICATION
Definition: wms_memory_area.h:74
app_lib_memory_area_t::getAreaInfo
app_lib_mem_area_getAreaInfo_f getAreaInfo
Definition: wms_memory_area.h:254
app_lib_mem_area_flash_info_t::page_write_time
uint32_t page_write_time
Definition: wms_memory_area.h:105
app_lib_mem_area_flash_info_t::is_busy_call_time
uint32_t is_busy_call_time
Definition: wms_memory_area.h:119
APP_LIB_MEM_AREA_RES_PARAM
@ APP_LIB_MEM_AREA_RES_PARAM
Definition: wms_memory_area.h:48
app_lib_mem_area_flash_info_t::write_alignment
size_t write_alignment
Definition: wms_memory_area.h:95
APP_LIB_MEM_AREA_RES_NODRIVER
@ APP_LIB_MEM_AREA_RES_NODRIVER
Definition: wms_memory_area.h:46
app_lib_mem_area_flash_info_t::page_write_call_time
uint32_t page_write_call_time
Definition: wms_memory_area.h:113
APP_LIB_MEM_AREA_RES_BUSY
@ APP_LIB_MEM_AREA_RES_BUSY
Definition: wms_memory_area.h:44
APP_LIB_MEM_AREA_RES_OK
@ APP_LIB_MEM_AREA_RES_OK
Definition: wms_memory_area.h:39
app_lib_mem_area_type_e
app_lib_mem_area_type_e
Lists the types of areas accessible from application side.
Definition: wms_memory_area.h:71
APP_LIB_MEM_AREA_RES_ERROR
@ APP_LIB_MEM_AREA_RES_ERROR
Definition: wms_memory_area.h:42
app_lib_mem_area_getAreaList_f
void(* app_lib_mem_area_getAreaList_f)(app_lib_mem_area_id_t *list, uint8_t *num_areas)
Returns the list of areas defined in the bootloader and accessible from the application.
Definition: wms_memory_area.h:242
app_lib_memory_area_t::isBusy
app_lib_mem_area_isBusy_f isBusy
Definition: wms_memory_area.h:253
app_lib_mem_area_flash_info_t::byte_write_time
uint32_t byte_write_time
Definition: wms_memory_area.h:103
app_lib_mem_area_info_t::area_id
app_lib_mem_area_id_t area_id
Definition: wms_memory_area.h:131
app_lib_memory_area_t::startRead
app_lib_mem_area_startRead_f startRead
Definition: wms_memory_area.h:250
app_lib_mem_area_info_t::flash
app_lib_mem_area_flash_info_t flash
Definition: wms_memory_area.h:135
APP_LIB_MEM_AREA_RES_INVALID_AREA
@ APP_LIB_MEM_AREA_RES_INVALID_AREA
Definition: wms_memory_area.h:50
app_lib_mem_area_res_e
app_lib_mem_area_res_e
memory area operations result
Definition: wms_memory_area.h:36
app_lib_mem_area_flash_info_t::erase_sector_size
size_t erase_sector_size
Definition: wms_memory_area.h:90
app_lib_mem_area_flash_info_t::write_page_size
size_t write_page_size
Definition: wms_memory_area.h:88
app_lib_mem_area_getAreaInfo_f
app_lib_mem_area_res_e(* app_lib_mem_area_getAreaInfo_f)(app_lib_mem_area_id_t id, app_lib_mem_area_info_t *info)
Fills a structure with info about memory area and flash timings and topology.
Definition: wms_memory_area.h:230
app_lib_memory_area_t
List of library functions.
Definition: wms_memory_area.h:248
app_lib_memory_area_t::startWrite
app_lib_mem_area_startWrite_f startWrite
Definition: wms_memory_area.h:251
app_lib_mem_area_startRead_f
app_lib_mem_area_res_e(* app_lib_mem_area_startRead_f)(app_lib_mem_area_id_t id, void *to, uint32_t from, size_t amount)
Block read from a memory area.
Definition: wms_memory_area.h:160
app_lib_mem_area_info_t::area_size
size_t area_size
Definition: wms_memory_area.h:133