@@ -1161,7 +1161,7 @@ def all_debug ():
1161
1161
################################################################
1162
1162
# flash size
1163
1163
1164
- def flash_map (flashsize_kb , spiffs_kb = 0 ):
1164
+ def flash_map (flashsize_kb , fs_kb = 0 ):
1165
1165
1166
1166
# mapping:
1167
1167
# flash | reserved | empty | spiffs | eeprom | rf-cal | sdk-wifi-settings
@@ -1172,29 +1172,32 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
1172
1172
eeprom_size_kb = 4
1173
1173
rfcal_size_kb = 4
1174
1174
sdkwifi_size_kb = 12
1175
- spiffs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb ) * 1024
1175
+ fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb ) * 1024
1176
1176
rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb ) * 1024
1177
1177
if flashsize_kb <= 1024 :
1178
- max_upload_size = (flashsize_kb - (spiffs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb )) * 1024 - reserved
1179
- spiffs_start = spiffs_end - spiffs_kb * 1024
1180
- spiffs_blocksize = 4096
1178
+ max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb )) * 1024 - reserved
1179
+ fs_start = fs_end - fs_kb * 1024
1181
1180
else :
1182
1181
max_upload_size = 1024 * 1024 - reserved
1183
- spiffs_start = (flashsize_kb - spiffs_kb ) * 1024
1184
- if spiffs_kb < 512 :
1185
- spiffs_blocksize = 4096
1186
- else :
1187
- spiffs_blocksize = 8192
1182
+ fs_start = (flashsize_kb - fs_kb ) * 1024
1183
+
1184
+ if fs_kb < 512 :
1185
+ fs_blocksize = 4096
1186
+ else :
1187
+ fs_blocksize = 8192
1188
1188
1189
- max_ota_size = min (max_upload_size , spiffs_start / 2 ) # =(max_upload_size+empty_size)/2
1189
+ # Adjust SPIFFS_end to be a multiple of the block size
1190
+ fs_end = fs_blocksize * (int )((fs_end - fs_start )/ fs_blocksize ) + fs_start ;
1191
+
1192
+ max_ota_size = min (max_upload_size , fs_start / 2 ) # =(max_upload_size+empty_size)/2
1190
1193
strsize = str (int (flashsize_kb / 1024 )) + 'M' if (flashsize_kb >= 1024 ) else str (flashsize_kb ) + 'K'
1191
- strspiffs = str (int (spiffs_kb / 1024 )) + 'M' if (spiffs_kb >= 1024 ) else str (spiffs_kb ) + 'K'
1192
- strspiffs_strip = str (int (spiffs_kb / 1024 )) + 'M' if (spiffs_kb >= 1024 ) else str (spiffs_kb ) if (spiffs_kb > 0 ) else ''
1194
+ strfs = str (int (fs_kb / 1024 )) + 'M' if (fs_kb >= 1024 ) else str (fs_kb ) + 'K'
1195
+ strfs_strip = str (int (fs_kb / 1024 )) + 'M' if (fs_kb >= 1024 ) else str (fs_kb ) if (fs_kb > 0 ) else ''
1193
1196
1194
- ld = 'eagle.flash.' + strsize .lower () + strspiffs_strip .lower () + '.ld'
1195
- menu = '.menu.eesz.' + strsize + strspiffs_strip
1197
+ ld = 'eagle.flash.' + strsize .lower () + strfs_strip .lower () + '.ld'
1198
+ menu = '.menu.eesz.' + strsize + strfs_strip
1196
1199
menub = menu + '.build.'
1197
- desc = 'no' if (spiffs_kb == 0 ) else strspiffs + 'B'
1200
+ desc = 'no' if (fs_kb == 0 ) else strfs + 'B'
1198
1201
d = collections .OrderedDict ([
1199
1202
( menu , strsize + 'B (FS:' + desc + ' OTA:~%iKB)' % (max_ota_size / 1024 )),
1200
1203
( menub + 'flash_size' , strsize ),
@@ -1204,11 +1207,11 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
1204
1207
( menu + '.upload.maximum_size' , "%i" % max_upload_size ),
1205
1208
( menub + 'rfcal_addr' , "0x%X" % rfcal_addr )
1206
1209
])
1207
- if spiffs_kb > 0 :
1210
+ if fs_kb > 0 :
1208
1211
d .update (collections .OrderedDict ([
1209
- ( menub + 'spiffs_start' , "0x%05X" % spiffs_start ),
1210
- ( menub + 'spiffs_end' , "0x%05X" % spiffs_end ),
1211
- ( menub + 'spiffs_blocksize' , "%i" % spiffs_blocksize ),
1212
+ ( menub + 'spiffs_start' , "0x%05X" % fs_start ),
1213
+ ( menub + 'spiffs_end' , "0x%05X" % fs_end ),
1214
+ ( menub + 'spiffs_blocksize' , "%i" % fs_blocksize ),
1212
1215
]))
1213
1216
1214
1217
if ldshow :
@@ -1224,23 +1227,19 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
1224
1227
realstdout = sys .stdout
1225
1228
sys .stdout = open (lddir + ld , 'w' )
1226
1229
1227
- if spiffs_kb == 0 :
1228
- spiffs_start = spiffs_end
1230
+ if fs_kb == 0 :
1231
+ fs_start = fs_end
1229
1232
page = 0
1230
- block = 0
1231
- elif spiffs_kb < 0x80000 / 1024 :
1232
- page = 0x100
1233
- block = 0x1000
1233
+ fs_blocksize = 0
1234
1234
else :
1235
1235
page = 0x100
1236
- block = 0x2000
1237
1236
1238
1237
print ("/* Flash Split for %s chips */" % strsize )
1239
1238
print ("/* sketch @0x%X (~%dKB) (%dB) */" % (spi , (max_upload_size / 1024 ), max_upload_size ))
1240
- empty_size = spiffs_start - max_upload_size
1239
+ empty_size = fs_start - max_upload_size
1241
1240
if empty_size > 0 :
1242
1241
print ("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size , empty_size / 1024 , empty_size ))
1243
- print ("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + spiffs_start , ((spiffs_end - spiffs_start ) / 1024 ), spiffs_end - spiffs_start ))
1242
+ print ("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + fs_start , ((fs_end - fs_start ) / 1024 ), fs_end - fs_start ))
1244
1243
print ("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024 , eeprom_size_kb ))
1245
1244
print ("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr , rfcal_size_kb ))
1246
1245
print ("/* wifi @0x%X (%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024 , sdkwifi_size_kb ))
@@ -1253,10 +1252,10 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
1253
1252
print (" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size )
1254
1253
print ("}" )
1255
1254
print ("" )
1256
- print ("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + spiffs_start ))
1257
- print ("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + spiffs_end ))
1255
+ print ("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start ))
1256
+ print ("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end ))
1258
1257
print ("PROVIDE ( _FS_page = 0x%X );" % page )
1259
- print ("PROVIDE ( _FS_block = 0x%X );" % block )
1258
+ print ("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize )
1260
1259
print ("" )
1261
1260
print ('INCLUDE "local.eagle.app.v6.common.ld"' )
1262
1261
0 commit comments