@@ -1161,7 +1161,7 @@ def all_debug ():
11611161################################################################
11621162# flash size
11631163
1164- def flash_map (flashsize_kb , spiffs_kb = 0 ):
1164+ def flash_map (flashsize_kb , fs_kb = 0 ):
11651165
11661166 # mapping:
11671167 # flash | reserved | empty | spiffs | eeprom | rf-cal | sdk-wifi-settings
@@ -1172,29 +1172,32 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
11721172 eeprom_size_kb = 4
11731173 rfcal_size_kb = 4
11741174 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
11761176 rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb ) * 1024
11771177 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
11811180 else :
11821181 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
11881188
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
11901193 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 ''
11931196
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
11961199 menub = menu + '.build.'
1197- desc = 'no' if (spiffs_kb == 0 ) else strspiffs + 'B'
1200+ desc = 'no' if (fs_kb == 0 ) else strfs + 'B'
11981201 d = collections .OrderedDict ([
11991202 ( menu , strsize + 'B (FS:' + desc + ' OTA:~%iKB)' % (max_ota_size / 1024 )),
12001203 ( menub + 'flash_size' , strsize ),
@@ -1204,11 +1207,11 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
12041207 ( menu + '.upload.maximum_size' , "%i" % max_upload_size ),
12051208 ( menub + 'rfcal_addr' , "0x%X" % rfcal_addr )
12061209 ])
1207- if spiffs_kb > 0 :
1210+ if fs_kb > 0 :
12081211 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 ),
12121215 ]))
12131216
12141217 if ldshow :
@@ -1224,23 +1227,19 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
12241227 realstdout = sys .stdout
12251228 sys .stdout = open (lddir + ld , 'w' )
12261229
1227- if spiffs_kb == 0 :
1228- spiffs_start = spiffs_end
1230+ if fs_kb == 0 :
1231+ fs_start = fs_end
12291232 page = 0
1230- block = 0
1231- elif spiffs_kb < 0x80000 / 1024 :
1232- page = 0x100
1233- block = 0x1000
1233+ fs_blocksize = 0
12341234 else :
12351235 page = 0x100
1236- block = 0x2000
12371236
12381237 print ("/* Flash Split for %s chips */" % strsize )
12391238 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
12411240 if empty_size > 0 :
12421241 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 ))
12441243 print ("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024 , eeprom_size_kb ))
12451244 print ("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr , rfcal_size_kb ))
12461245 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):
12531252 print (" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size )
12541253 print ("}" )
12551254 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 ))
12581257 print ("PROVIDE ( _FS_page = 0x%X );" % page )
1259- print ("PROVIDE ( _FS_block = 0x%X );" % block )
1258+ print ("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize )
12601259 print ("" )
12611260 print ('INCLUDE "local.eagle.app.v6.common.ld"' )
12621261
0 commit comments