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 
19 #ifndef APP_LIB_MEMORY_AREA_H_
20 #define APP_LIB_MEMORY_AREA_H_
21 
22 #include <stdlib.h>
23 #include <stdint.h>
24 #include <stdbool.h>
25 
26 #include "wms_app.h"
27 
29 #define APP_LIB_MEMORY_AREA_NAME 0x01fd3b49
30 
32 #define APP_LIB_MEMORY_AREA_VERSION 0x200
33 
35 typedef enum
36 {
53 
59 #define APP_LIB_MEM_AREA_MAX_AREAS 16
60 
62 typedef uint32_t app_lib_mem_area_id_t;
63 
69 typedef enum
70 {
76 
83 typedef struct
84 {
101  uint32_t byte_write_time;
103  uint32_t page_write_time;
119 
126 typedef struct
127 {
131  size_t area_size;
139 
140 
159  app_lib_mem_area_id_t id, void * to, uint32_t from, size_t amount);
160 
185  app_lib_mem_area_id_t id, uint32_t to, const void * from, size_t amount);
186 
207  uint32_t * sector_base,
208  size_t * number_of_sector);
209 
217 
230 
241  uint8_t * num_areas);
242 
246 typedef struct
247 {
255 
256 #endif /* APP_LIB_MEMORY_AREA_H_ */
app_lib_mem_area_info_t::external_flash
bool external_flash
Definition: wms_memory_area.h:135
app_lib_mem_area_info_t
memory area information
Definition: wms_memory_area.h:126
app_lib_mem_area_info_t::type
app_lib_mem_area_type_e type
Definition: wms_memory_area.h:137
app_lib_mem_area_flash_info_t::sector_erase_time
uint32_t sector_erase_time
Definition: wms_memory_area.h:105
app_lib_mem_area_id_t
uint32_t app_lib_mem_area_id_t
Memory Area id definition.
Definition: wms_memory_area.h:62
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:184
wms_app.h
APP_LIB_MEM_AREA_TYPE_USER
@ APP_LIB_MEM_AREA_TYPE_USER
Definition: wms_memory_area.h:74
app_lib_memory_area_t::startErase
app_lib_mem_area_startErase_f startErase
Definition: wms_memory_area.h:250
app_lib_memory_area_t::getAreaList
app_lib_mem_area_getAreaList_f getAreaList
Definition: wms_memory_area.h:253
app_lib_mem_area_flash_info_t::byte_write_call_time
uint32_t byte_write_call_time
Definition: wms_memory_area.h:108
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:216
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:205
app_lib_mem_area_flash_info_t::sector_erase_call_time
uint32_t sector_erase_call_time
Definition: wms_memory_area.h:114
app_lib_mem_area_flash_info_t
Information on flash peripheral.
Definition: wms_memory_area.h:83
APP_LIB_MEM_AREA_RES_INVALID_TAG
@ APP_LIB_MEM_AREA_RES_INVALID_TAG
Definition: wms_memory_area.h:51
APP_LIB_MEM_AREA_TYPE_APPLICATION
@ APP_LIB_MEM_AREA_TYPE_APPLICATION
Definition: wms_memory_area.h:72
app_lib_memory_area_t::getAreaInfo
app_lib_mem_area_getAreaInfo_f getAreaInfo
Definition: wms_memory_area.h:252
app_lib_mem_area_flash_info_t::page_write_time
uint32_t page_write_time
Definition: wms_memory_area.h:103
app_lib_mem_area_flash_info_t::is_busy_call_time
uint32_t is_busy_call_time
Definition: wms_memory_area.h:117
APP_LIB_MEM_AREA_RES_PARAM
@ APP_LIB_MEM_AREA_RES_PARAM
Definition: wms_memory_area.h:47
app_lib_mem_area_flash_info_t::write_alignment
size_t write_alignment
Definition: wms_memory_area.h:93
APP_LIB_MEM_AREA_RES_NODRIVER
@ APP_LIB_MEM_AREA_RES_NODRIVER
Definition: wms_memory_area.h:45
app_lib_mem_area_flash_info_t::page_write_call_time
uint32_t page_write_call_time
Definition: wms_memory_area.h:111
APP_LIB_MEM_AREA_RES_BUSY
@ APP_LIB_MEM_AREA_RES_BUSY
Definition: wms_memory_area.h:43
APP_LIB_MEM_AREA_RES_OK
@ APP_LIB_MEM_AREA_RES_OK
Definition: wms_memory_area.h:38
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:69
APP_LIB_MEM_AREA_RES_ERROR
@ APP_LIB_MEM_AREA_RES_ERROR
Definition: wms_memory_area.h:41
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:240
app_lib_memory_area_t::isBusy
app_lib_mem_area_isBusy_f isBusy
Definition: wms_memory_area.h:251
app_lib_mem_area_flash_info_t::byte_write_time
uint32_t byte_write_time
Definition: wms_memory_area.h:101
app_lib_mem_area_info_t::area_id
app_lib_mem_area_id_t area_id
Definition: wms_memory_area.h:129
app_lib_memory_area_t::startRead
app_lib_mem_area_startRead_f startRead
Definition: wms_memory_area.h:248
app_lib_mem_area_info_t::flash
app_lib_mem_area_flash_info_t flash
Definition: wms_memory_area.h:133
APP_LIB_MEM_AREA_RES_INVALID_AREA
@ APP_LIB_MEM_AREA_RES_INVALID_AREA
Definition: wms_memory_area.h:49
app_lib_mem_area_res_e
app_lib_mem_area_res_e
memory area operations result
Definition: wms_memory_area.h:35
app_lib_mem_area_flash_info_t::erase_sector_size
size_t erase_sector_size
Definition: wms_memory_area.h:88
app_lib_mem_area_flash_info_t::write_page_size
size_t write_page_size
Definition: wms_memory_area.h:86
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:228
app_lib_memory_area_t
List of library functions.
Definition: wms_memory_area.h:246
app_lib_memory_area_t::startWrite
app_lib_mem_area_startWrite_f startWrite
Definition: wms_memory_area.h:249
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:158
app_lib_mem_area_info_t::area_size
size_t area_size
Definition: wms_memory_area.h:131