@@ -52,39 +52,39 @@ static s32_t api_spiffs_write(u32_t addr, u32_t size, u8_t *src){
52
52
static s32_t api_spiffs_erase (u32_t addr, u32_t size){
53
53
memset (&s_flashmem[0 ] + addr, 0xff , size);
54
54
return SPIFFS_OK;
55
- }
55
+ }
56
56
57
57
58
58
// implementation
59
59
60
60
int spiffsTryMount (){
61
61
spiffs_config cfg = {0 };
62
-
62
+
63
63
cfg.phys_addr = 0x0000 ;
64
64
cfg.phys_size = (u32_t ) s_flashmem.size ();
65
-
65
+
66
66
cfg.phys_erase_block = s_blockSize;
67
67
cfg.log_block_size = s_blockSize;
68
68
cfg.log_page_size = s_pageSize;
69
-
69
+
70
70
cfg.hal_read_f = api_spiffs_read;
71
71
cfg.hal_write_f = api_spiffs_write;
72
72
cfg.hal_erase_f = api_spiffs_erase;
73
-
73
+
74
74
const int maxOpenFiles = 4 ;
75
75
s_spiffsWorkBuf.resize (s_pageSize * 2 );
76
76
s_spiffsFds.resize (32 * maxOpenFiles);
77
77
s_spiffsCache.resize ((32 + s_pageSize) * maxOpenFiles);
78
78
79
- return SPIFFS_mount (&s_fs, &cfg,
80
- &s_spiffsWorkBuf[0 ],
79
+ return SPIFFS_mount (&s_fs, &cfg,
80
+ &s_spiffsWorkBuf[0 ],
81
81
&s_spiffsFds[0 ], s_spiffsFds.size (),
82
82
&s_spiffsCache[0 ], s_spiffsCache.size (),
83
83
NULL );
84
84
}
85
85
86
86
bool spiffsMount (){
87
- if (SPIFFS_mounted (&s_fs))
87
+ if (SPIFFS_mounted (&s_fs))
88
88
return true ;
89
89
int res = spiffsTryMount ();
90
90
return (res == SPIFFS_OK);
@@ -94,7 +94,7 @@ bool spiffsFormat(){
94
94
spiffsMount ();
95
95
SPIFFS_unmount (&s_fs);
96
96
int formated = SPIFFS_format (&s_fs);
97
- if (formated != SPIFFS_OK)
97
+ if (formated != SPIFFS_OK)
98
98
return false ;
99
99
return (spiffsTryMount () == SPIFFS_OK);
100
100
}
@@ -110,13 +110,13 @@ int addFile(char* name, const char* path) {
110
110
std::cerr << " error: failed to open " << path << " for reading" << std::endl;
111
111
return 1 ;
112
112
}
113
-
113
+
114
114
spiffs_file dst = SPIFFS_open (&s_fs, name, SPIFFS_CREAT | SPIFFS_TRUNC | SPIFFS_RDWR, 0 );
115
-
115
+
116
116
fseek (src, 0 , SEEK_END);
117
117
size_t size = ftell (src);
118
118
fseek (src, 0 , SEEK_SET);
119
-
119
+
120
120
size_t left = size;
121
121
uint8_t data_byte;
122
122
while (left > 0 ){
@@ -133,7 +133,7 @@ int addFile(char* name, const char* path) {
133
133
}
134
134
left -= 1 ;
135
135
}
136
-
136
+
137
137
SPIFFS_close (&s_fs, dst);
138
138
fclose (src);
139
139
return 0 ;
@@ -156,10 +156,10 @@ int addFiles(const char* dirname){
156
156
std::cerr << " skipping " << ent->d_name << std::endl;
157
157
continue ;
158
158
}
159
-
159
+
160
160
std::string filepath = " /" ;
161
161
filepath += ent->d_name ;
162
- std::cout << ent-> d_name << std::endl;
162
+ std::cout << filepath << std::endl;
163
163
if (addFile ((char *)filepath.c_str (), fullpath.c_str ()) != 0 ) {
164
164
std::cerr << " error adding file!" << std::endl;
165
165
error = true ;
@@ -177,14 +177,14 @@ int addFiles(const char* dirname){
177
177
void listFiles () {
178
178
spiffs_DIR dir;
179
179
spiffs_dirent ent;
180
-
180
+
181
181
SPIFFS_opendir (&s_fs, 0 , &dir);
182
182
spiffs_dirent* it;
183
183
while (true ) {
184
184
it = SPIFFS_readdir (&dir, &ent);
185
185
if (!it)
186
186
break ;
187
-
187
+
188
188
std::cout << it->size << ' \t ' << it->name << std::endl;
189
189
}
190
190
SPIFFS_closedir (&dir);
@@ -194,33 +194,33 @@ void listFiles() {
194
194
195
195
int actionPack () {
196
196
s_flashmem.resize (s_imageSize, 0xff );
197
-
197
+
198
198
FILE* fdres = fopen (s_imageName.c_str (), " wb" );
199
199
if (!fdres) {
200
200
std::cerr << " error: failed to open image file" << std::endl;
201
201
return 1 ;
202
202
}
203
-
203
+
204
204
spiffsFormat ();
205
205
int result = addFiles (s_dirName.c_str ());
206
206
spiffsUnmount ();
207
-
207
+
208
208
fwrite (&s_flashmem[0 ], 4 , s_flashmem.size ()/4 , fdres);
209
209
fclose (fdres);
210
-
210
+
211
211
return result;
212
212
}
213
213
214
214
215
215
int actionList () {
216
216
s_flashmem.resize (s_imageSize, 0xff );
217
-
217
+
218
218
FILE* fdsrc = fopen (s_imageName.c_str (), " rb" );
219
219
if (!fdsrc) {
220
220
std::cerr << " error: failed to open image file" << std::endl;
221
221
return 1 ;
222
222
}
223
-
223
+
224
224
fread (&s_flashmem[0 ], 4 , s_flashmem.size ()/4 , fdsrc);
225
225
fclose (fdsrc);
226
226
spiffsMount ();
@@ -231,23 +231,23 @@ int actionList() {
231
231
232
232
int actionVisualize () {
233
233
s_flashmem.resize (s_imageSize, 0xff );
234
-
234
+
235
235
FILE* fdsrc = fopen (s_imageName.c_str (), " rb" );
236
236
if (!fdsrc) {
237
237
std::cerr << " error: failed to open image file" << std::endl;
238
238
return 1 ;
239
239
}
240
-
240
+
241
241
fread (&s_flashmem[0 ], 4 , s_flashmem.size ()/4 , fdsrc);
242
242
fclose (fdsrc);
243
-
243
+
244
244
spiffsMount ();
245
245
SPIFFS_vis (&s_fs);
246
246
uint32_t total, used;
247
247
SPIFFS_info (&s_fs, &total, &used);
248
248
std::cout << " total: " << total << std::endl << " used: " << used << std::endl;
249
249
spiffsUnmount ();
250
-
250
+
251
251
return 0 ;
252
252
}
253
253
@@ -268,7 +268,7 @@ void processArgs(int argc, const char** argv) {
268
268
cmd.xorAdd ( args );
269
269
cmd.add ( outNameArg );
270
270
cmd.parse ( argc, argv );
271
-
271
+
272
272
if (packArg.isSet ()) {
273
273
s_dirName = packArg.getValue ();
274
274
s_action = ACTION_PACK;
@@ -279,28 +279,28 @@ void processArgs(int argc, const char** argv) {
279
279
else if (visualizeArg.isSet ()) {
280
280
s_action = ACTION_VISUALIZE;
281
281
}
282
-
282
+
283
283
s_imageName = outNameArg.getValue ();
284
284
s_imageSize = imageSizeArg.getValue ();
285
285
s_pageSize = pageSizeArg.getValue ();
286
286
s_blockSize = blockSizeArg.getValue ();
287
287
}
288
288
289
289
int main (int argc, const char * argv[]) {
290
-
290
+
291
291
try {
292
292
processArgs (argc, argv);
293
293
} catch (...) {
294
294
std::cerr << " Invalid arguments" << std::endl;
295
295
return 1 ;
296
296
}
297
-
297
+
298
298
switch (s_action) {
299
299
case ACTION_PACK: return actionPack ();
300
300
case ACTION_LIST: return actionList ();
301
301
case ACTION_VISUALIZE: return actionVisualize ();
302
302
default : ;
303
303
}
304
-
304
+
305
305
return 1 ;
306
306
}
0 commit comments