Avionics
Core avionics package for CURE flight computers
Loading...
Searching...
No Matches
Adafruit_SPIFlash_mock.h
Go to the documentation of this file.
1#ifndef ADAFRUIT_SPIFLASH_MOCK_H
2#define ADAFRUIT_SPIFLASH_MOCK_H
3
4#include <stddef.h>
5#include <stdint.h>
6
7#define FAKE_MEMORY_SIZE_BYTES 16777216 // 16MB
8#define SFLASH_SECTOR_SIZE 4096
9#define SFLASH_BLOCK_SIZE 65536
10#define SFLASH_PAGE_SIZE 256
11
13 public:
14
16
17 bool begin() {
18 return true;
19 }
20
21 size_t size() {
23 }
24
25 bool writeBuffer(uint32_t address, const uint8_t* buffer, size_t length) {
26 // Write to fake memory
27 for (size_t i = 0; i < length; i++) {
28 fakeMemory[address + i] = buffer[i];
29 }
30 // if out of bounds, return false
31 if (address + length > FAKE_MEMORY_SIZE_BYTES) {
32 return false;
33 }
34
35 return true;
36 }
37
38 bool readBuffer(uint32_t address, uint8_t* buffer, size_t length) {
39 // Read from fake memory
40 for (size_t i = 0; i < length; i++) {
41 buffer[i] = fakeMemory[address + i];
42 }
43
44 // if out of bounds, return false
45 if (address + length > FAKE_MEMORY_SIZE_BYTES) {
46 return false;
47 }
48
49 return true;
50 }
51
52 bool eraseSector(uint32_t sectorNumber) {
53 // Erase the sector in fake memory
54 for (size_t i = 0; i < 4096; i++) {
55 fakeMemory[sectorNumber * 4096 + i] = 0xFF;
56 }
57 return true;
58 }
59
60 bool eraseChip() {
61 // Erase the entire chip in fake memory
62 for (size_t i = 0; i < FAKE_MEMORY_SIZE_BYTES; i++) {
63 fakeMemory[i] = 0xFF;
64 }
65 return true;
66 }
67
69};
70
71#endif // ADAFRUIT_SPIFLASH_MOCK_H
#define FAKE_MEMORY_SIZE_BYTES
bool eraseSector(uint32_t sectorNumber)
bool readBuffer(uint32_t address, uint8_t *buffer, size_t length)
bool writeBuffer(uint32_t address, const uint8_t *buffer, size_t length)
uint8_t fakeMemory[FAKE_MEMORY_SIZE_BYTES]