MCPcopy Create free account
hub / github.com/SmingHub/Sming / SpiffsBuildConfig

Class SpiffsBuildConfig

Sming/Libraries/Spiffs/spiffsgen.py:46–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44SPIFFS_ALIGNED_OBJECT_INDEX_TABLES = True
45
46class SpiffsBuildConfig():
47 def __init__(self, page_size, page_ix_len, block_size,
48 block_ix_len, meta_len, obj_name_len, obj_id_len,
49 span_ix_len, packed, aligned, endianness, use_magic, use_magic_len):
50 if block_size % page_size != 0:
51 raise RuntimeError('block size should be a multiple of page size')
52
53 self.page_size = page_size
54 self.block_size = block_size
55 self.obj_id_len = obj_id_len
56 self.span_ix_len = span_ix_len
57 self.packed = packed
58 self.aligned = aligned
59 self.obj_name_len = obj_name_len
60 self.meta_len = meta_len
61 self.page_ix_len = page_ix_len
62 self.block_ix_len = block_ix_len
63 self.endianness = endianness
64 self.use_magic = use_magic
65 self.use_magic_len = use_magic_len
66
67 self.PAGES_PER_BLOCK = self.block_size // self.page_size
68 self.OBJ_LU_PAGES_PER_BLOCK = int(math.ceil(self.block_size / self.page_size * self.obj_id_len / self.page_size))
69 self.OBJ_USABLE_PAGES_PER_BLOCK = self.PAGES_PER_BLOCK - self.OBJ_LU_PAGES_PER_BLOCK
70
71 self.OBJ_LU_PAGES_OBJ_IDS_LIM = self.page_size // self.obj_id_len
72
73 self.OBJ_DATA_PAGE_HEADER_LEN = self.obj_id_len + self.span_ix_len + SPIFFS_PH_FLAG_LEN
74
75 pad = 4 - (4 if self.OBJ_DATA_PAGE_HEADER_LEN % 4 == 0 else self.OBJ_DATA_PAGE_HEADER_LEN % 4)
76
77 self.OBJ_DATA_PAGE_HEADER_LEN_ALIGNED = self.OBJ_DATA_PAGE_HEADER_LEN + pad
78 self.OBJ_DATA_PAGE_HEADER_LEN_ALIGNED_PAD = pad
79 self.OBJ_DATA_PAGE_CONTENT_LEN = self.page_size - self.OBJ_DATA_PAGE_HEADER_LEN
80
81 self.OBJ_INDEX_PAGES_HEADER_LEN = (self.OBJ_DATA_PAGE_HEADER_LEN_ALIGNED + SPIFFS_PH_IX_SIZE_LEN +
82 SPIFFS_PH_IX_OBJ_TYPE_LEN + self.obj_name_len + self.meta_len)
83 self.OBJ_INDEX_PAGES_OBJ_IDS_HEAD_LIM = (self.page_size - self.OBJ_INDEX_PAGES_HEADER_LEN) // self.block_ix_len
84 self.OBJ_INDEX_PAGES_OBJ_IDS_LIM = (self.page_size - self.OBJ_DATA_PAGE_HEADER_LEN_ALIGNED) / self.block_ix_len
85
86
87class SpiffsFullError(RuntimeError):

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected