Skip to content

Commit 67edcbc

Browse files
committed
add debug output option and some error check and output
1 parent 5b3fc0c commit 67edcbc

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

main.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ static s32_t api_spiffs_erase(u32_t addr, u32_t size){
5555
}
5656

5757

58+
int g_debugLevel = 0;
59+
60+
5861
//implementation
5962

6063
int spiffsTryMount(){
@@ -113,20 +116,40 @@ int addFile(char* name, const char* path) {
113116

114117
spiffs_file dst = SPIFFS_open(&s_fs, name, SPIFFS_CREAT | SPIFFS_TRUNC | SPIFFS_RDWR, 0);
115118

119+
// read file size
116120
fseek(src, 0, SEEK_END);
117121
size_t size = ftell(src);
118122
fseek(src, 0, SEEK_SET);
119123

124+
if (g_debugLevel > 0) {
125+
std::cout << "file size: " << size << std::endl;
126+
}
127+
120128
size_t left = size;
121129
uint8_t data_byte;
122130
while (left > 0){
123131
if (1 != fread(&data_byte, 1, 1, src)) {
132+
std::cerr << "fread error!" << std::endl;
133+
124134
fclose(src);
125135
SPIFFS_close(&s_fs, dst);
126136
return 1;
127137
}
128138
int res = SPIFFS_write(&s_fs, dst, &data_byte, 1);
129139
if (res < 0) {
140+
std::cerr << "SPIFFS_write error(" << s_fs.err_code << "): ";
141+
142+
if (s_fs.err_code == SPIFFS_ERR_FULL) {
143+
std::cerr << "File system is full." << std::endl;
144+
} else {
145+
std::cerr << "unknown";
146+
}
147+
std::cerr << std::endl;
148+
149+
if (g_debugLevel > 0) {
150+
std::cout << "data left: " << left << std::endl;
151+
}
152+
130153
fclose(src);
131154
SPIFFS_close(&s_fs, dst);
132155
return 1;
@@ -136,6 +159,7 @@ int addFile(char* name, const char* path) {
136159

137160
SPIFFS_close(&s_fs, dst);
138161
fclose(src);
162+
139163
return 0;
140164
}
141165

@@ -163,6 +187,9 @@ int addFiles(const char* dirname){
163187
if (addFile((char*)filepath.c_str(), fullpath.c_str()) != 0) {
164188
std::cerr << "error adding file!" << std::endl;
165189
error = true;
190+
if (g_debugLevel > 0) {
191+
std::cout << std::endl;
192+
}
166193
break;
167194
}
168195
}
@@ -419,15 +446,22 @@ void processArgs(int argc, const char** argv) {
419446
TCLAP::ValueArg<int> imageSizeArg( "s", "size", "fs image size, in bytes", false, 0x10000, "number" );
420447
TCLAP::ValueArg<int> pageSizeArg( "p", "page", "fs page size, in bytes", false, 256, "number" );
421448
TCLAP::ValueArg<int> blockSizeArg( "b", "block", "fs block size, in bytes", false, 4096, "number" );
449+
TCLAP::ValueArg<int> debugArg( "d", "debug", "Debug level. 0 means no debug output.", false, 0, "0-5" );
422450

423451
cmd.add( imageSizeArg );
424452
cmd.add( pageSizeArg );
425453
cmd.add( blockSizeArg );
454+
cmd.add(debugArg);
426455
std::vector<TCLAP::Arg*> args = {&packArg, &unpackArg, &listArg, &visualizeArg};
427456
cmd.xorAdd( args );
428457
cmd.add( outNameArg );
429458
cmd.parse( argc, argv );
430459

460+
if (debugArg.getValue() > 0) {
461+
std::cout << "Debug output enabled" << std::endl;
462+
g_debugLevel = debugArg.getValue();
463+
}
464+
431465
if (packArg.isSet()) {
432466
s_dirName = packArg.getValue();
433467
s_action = ACTION_PACK;

0 commit comments

Comments
 (0)