ENTS-tock
Environmental NeTworked Sensor firmware on Tock OS
Loading...
Searching...
No Matches
fram.c
Go to the documentation of this file.
1#include "fram.h"
2
3#include "fram_def.h"
4
5#define FRAM_MB85RC1MT
6
7#if defined(FRAM_FM24CL16B) && defined(FRAM_MB85RC1MT)
8#error Only one FRAM chip can be enabled
9#elif defined(FRAM_FM24CL16B)
10#error FM24CL16B Not Implemented
11#elif defined(FRAM_MB85RC1MT)
12#include "mb85rc1mt.h"
16#else
17#error No FRAM chip enabled
18#endif
19
20fram_status fram_write(fram_addr addr, const uint8_t* data, size_t len) {
21 if (addr + len > fram_size()) {
22 return FRAM_OUT_OF_RANGE;
23 }
24
25 return fram_interface.write_ptr(addr, data, len);
26}
27
28fram_status fram_read(fram_addr addr, size_t len, uint8_t* data) {
29 if (addr + len > fram_size()) {
30 return FRAM_OUT_OF_RANGE;
31 }
32
33 return fram_interface.read_ptr(addr, len, data);
34}
35
const char data[]
const fram_interface_t fram_interface
Definition fram.c:13
Storage interface for onboard FRAM chips.
fram_status fram_write(fram_addr addr, const uint8_t *data, size_t len)
Write bytes at the given address.
Definition fram.c:20
fram_status
Definition fram.h:32
fram_status fram_read(fram_addr addr, size_t len, uint8_t *data)
Read bytes at the given address.
Definition fram.c:28
fram_addr fram_size(void)
Get the total size of FRAM in bytes.
Definition fram.c:36
uint32_t fram_addr
Definition fram.h:41
@ FRAM_OUT_OF_RANGE
Definition fram.h:35
fram_status mb85rc1mt_write(fram_addr addr, const uint8_t *data, size_t len)
Write bytes to FRAM at the given address.
Definition mb85rc1mt.c:81
fram_status mb85rc1mt_read(fram_addr addr, size_t len, uint8_t *data)
Read bytes from FRAM at the given address.
Definition mb85rc1mt.c:165
fram_addr mb85rc1mt_size(void)
Get the total size of FRAM in bytes.
Definition mb85rc1mt.c:247
Driver for mb87rc1mt FRAM chip.
fram_write_ptr_t write_ptr
Definition fram_def.h:43
fram_read_ptr_t read_ptr
Definition fram_def.h:45
fram_size_ptr_t size_ptr
Definition fram_def.h:47