1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

restore SPIFFS symbols when null-sized (#5122)

fix comments
fix cc0bfa04d4 (commitcomment-30462616)
This commit is contained in:
david gauchard 2018-09-11 14:25:05 +02:00 committed by GitHub
parent ce28a76a24
commit cee458a68e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 110 additions and 436 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1118,12 +1118,12 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
( menu + '.upload.maximum_size', "%i" % max_upload_size ), ( menu + '.upload.maximum_size', "%i" % max_upload_size ),
( menub + 'rfcal_addr', "0x%X" % rfcal_addr) ( menub + 'rfcal_addr', "0x%X" % rfcal_addr)
]) ])
if spiffs_kb > 0: #if spiffs_kb > 0:
d.update(collections.OrderedDict([ # d.update(collections.OrderedDict([
( menub + 'spiffs_start', "0x%05X" % spiffs_start ), # ( menub + 'spiffs_start', "0x%05X" % spiffs_start ),
( menub + 'spiffs_end', "0x%05X" % spiffs_end ), # ( menub + 'spiffs_end', "0x%05X" % spiffs_end ),
( menub + 'spiffs_blocksize', "%i" % spiffs_blocksize ), # ( menub + 'spiffs_blocksize', "%i" % spiffs_blocksize ),
])) # ]))
if ldshow: if ldshow:
if ldgen: if ldgen:
@ -1150,14 +1150,13 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
print("/* Flash Split for %s chips */" % strsize) print("/* Flash Split for %s chips */" % strsize)
print("/* sketch @0x%X (~%dKB) (%dB) */" % (spi, (max_upload_size / 1024), max_upload_size)) print("/* sketch @0x%X (~%dKB) (%dB) */" % (spi, (max_upload_size / 1024), max_upload_size))
if spiffs_kb > 0: empty_size = spiffs_start - max_upload_size
empty_size = spiffs_start - max_upload_size if empty_size > 0:
if empty_size > 1024: print("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size, empty_size / 1024, empty_size))
print("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size, empty_size / 1024, empty_size)) print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + spiffs_start, ((spiffs_end - spiffs_start) / 1024), spiffs_end - spiffs_start))
print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + spiffs_start, ((spiffs_end - spiffs_start) / 1024), spiffs_end - spiffs_start)) print("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024, eeprom_size_kb))
print("/* eeprom @0x%X (=%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024, eeprom_size_kb)) print("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr, rfcal_size_kb))
print("/* rfcal @0x%X (=%dKB) */" % (spi + rfcal_addr, rfcal_size_kb)) print("/* wifi @0x%X (%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024, sdkwifi_size_kb))
print("/* wifi @0x%X (=%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024, sdkwifi_size_kb))
print("") print("")
print("MEMORY") print("MEMORY")
print("{") print("{")
@ -1167,11 +1166,10 @@ def flash_map (flashsize_kb, spiffs_kb = 0):
print(" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size) print(" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size)
print("}") print("}")
print("") print("")
if spiffs_kb > 0: print("PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start))
print("PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start)) print("PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_end))
print("PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_end)) print("PROVIDE ( _SPIFFS_page = 0x%X );" % page)
print("PROVIDE ( _SPIFFS_page = 0x%X );" % page) print("PROVIDE ( _SPIFFS_block = 0x%X );" % block)
print("PROVIDE ( _SPIFFS_block = 0x%X );" % block)
print("") print("")
print('INCLUDE "eagle.app.v6.common.ld"') print('INCLUDE "eagle.app.v6.common.ld"')

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~1028KB) (1052688B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */
/* spiffs @0x40400000 (~14316KB) (14659584B) */ /* spiffs @0x40400000 (~14316KB) (14659584B) */
/* eeprom @0x411FB000 (=4KB) */ /* eeprom @0x411FB000 (4KB) */
/* rfcal @0x411FC000 (=4KB) */ /* rfcal @0x411FC000 (4KB) */
/* wifi @0x411FD000 (=12KB) */ /* wifi @0x411FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~4KB) (4112B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */
/* spiffs @0x40300000 (~15340KB) (15708160B) */ /* spiffs @0x40300000 (~15340KB) (15708160B) */
/* eeprom @0x411FB000 (=4KB) */ /* eeprom @0x411FB000 (4KB) */
/* rfcal @0x411FC000 (=4KB) */ /* rfcal @0x411FC000 (4KB) */
/* wifi @0x411FD000 (=12KB) */ /* wifi @0x411FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -1,8 +1,10 @@
/* Flash Split for 1M chips */ /* Flash Split for 1M chips */
/* sketch @0x40200000 (~999KB) (1023984B) */ /* sketch @0x40200000 (~999KB) (1023984B) */
/* eeprom @0x402FB000 (=4KB) */ /* empty @0x402F9FF0 (~4KB) (4112B) */
/* rfcal @0x402FC000 (=4KB) */ /* spiffs @0x402FB000 (~0KB) (0B) */
/* wifi @0x402FD000 (=12KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {
@ -12,5 +14,9 @@ MEMORY
irom0_0_seg : org = 0x40201010, len = 0xf9ff0 irom0_0_seg : org = 0x40201010, len = 0xf9ff0
} }
PROVIDE ( _SPIFFS_start = 0x402FB000 );
PROVIDE ( _SPIFFS_end = 0x402FB000 );
PROVIDE ( _SPIFFS_page = 0x0 );
PROVIDE ( _SPIFFS_block = 0x0 );
INCLUDE "eagle.app.v6.common.ld" INCLUDE "eagle.app.v6.common.ld"

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~871KB) (892912B) */ /* sketch @0x40200000 (~871KB) (892912B) */
/* empty @0x402D9FF0 (~4KB) (4112B) */ /* empty @0x402D9FF0 (~4KB) (4112B) */
/* spiffs @0x402DB000 (~128KB) (131072B) */ /* spiffs @0x402DB000 (~128KB) (131072B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~855KB) (876528B) */ /* sketch @0x40200000 (~855KB) (876528B) */
/* empty @0x402D5FF0 (~4KB) (4112B) */ /* empty @0x402D5FF0 (~4KB) (4112B) */
/* spiffs @0x402D7000 (~144KB) (147456B) */ /* spiffs @0x402D7000 (~144KB) (147456B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~839KB) (860144B) */ /* sketch @0x40200000 (~839KB) (860144B) */
/* empty @0x402D1FF0 (~4KB) (4112B) */ /* empty @0x402D1FF0 (~4KB) (4112B) */
/* spiffs @0x402D3000 (~160KB) (163840B) */ /* spiffs @0x402D3000 (~160KB) (163840B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~807KB) (827376B) */ /* sketch @0x40200000 (~807KB) (827376B) */
/* empty @0x402C9FF0 (~4KB) (4112B) */ /* empty @0x402C9FF0 (~4KB) (4112B) */
/* spiffs @0x402CB000 (~192KB) (196608B) */ /* spiffs @0x402CB000 (~192KB) (196608B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~743KB) (761840B) */ /* sketch @0x40200000 (~743KB) (761840B) */
/* empty @0x402B9FF0 (~4KB) (4112B) */ /* empty @0x402B9FF0 (~4KB) (4112B) */
/* spiffs @0x402BB000 (~256KB) (262144B) */ /* spiffs @0x402BB000 (~256KB) (262144B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~487KB) (499696B) */ /* sketch @0x40200000 (~487KB) (499696B) */
/* empty @0x40279FF0 (~4KB) (4112B) */ /* empty @0x40279FF0 (~4KB) (4112B) */
/* spiffs @0x4027B000 (~512KB) (524288B) */ /* spiffs @0x4027B000 (~512KB) (524288B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~935KB) (958448B) */ /* sketch @0x40200000 (~935KB) (958448B) */
/* empty @0x402E9FF0 (~4KB) (4112B) */ /* empty @0x402E9FF0 (~4KB) (4112B) */
/* spiffs @0x402EB000 (~64KB) (65536B) */ /* spiffs @0x402EB000 (~64KB) (65536B) */
/* eeprom @0x402FB000 (=4KB) */ /* eeprom @0x402FB000 (4KB) */
/* rfcal @0x402FC000 (=4KB) */ /* rfcal @0x402FC000 (4KB) */
/* wifi @0x402FD000 (=12KB) */ /* wifi @0x402FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -1,8 +1,10 @@
/* Flash Split for 2M chips */ /* Flash Split for 2M chips */
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* eeprom @0x403FB000 (=4KB) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */
/* rfcal @0x403FC000 (=4KB) */ /* spiffs @0x40400000 (~-20KB) (-20480B) */
/* wifi @0x403FD000 (=12KB) */ /* eeprom @0x403FB000 (4KB) */
/* rfcal @0x403FC000 (4KB) */
/* wifi @0x403FD000 (12KB) */
MEMORY MEMORY
{ {
@ -12,5 +14,9 @@ MEMORY
irom0_0_seg : org = 0x40201010, len = 0xfeff0 irom0_0_seg : org = 0x40201010, len = 0xfeff0
} }
PROVIDE ( _SPIFFS_start = 0x40400000 );
PROVIDE ( _SPIFFS_end = 0x403FB000 );
PROVIDE ( _SPIFFS_page = 0x0 );
PROVIDE ( _SPIFFS_block = 0x0 );
INCLUDE "eagle.app.v6.common.ld" INCLUDE "eagle.app.v6.common.ld"

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~4KB) (4112B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */
/* spiffs @0x40300000 (~1004KB) (1028096B) */ /* spiffs @0x40300000 (~1004KB) (1028096B) */
/* eeprom @0x403FB000 (=4KB) */ /* eeprom @0x403FB000 (4KB) */
/* rfcal @0x403FC000 (=4KB) */ /* rfcal @0x403FC000 (4KB) */
/* wifi @0x403FD000 (=12KB) */ /* wifi @0x403FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~516KB) (528400B) */ /* empty @0x402FEFF0 (~516KB) (528400B) */
/* spiffs @0x40380000 (~492KB) (503808B) */ /* spiffs @0x40380000 (~492KB) (503808B) */
/* eeprom @0x403FB000 (=4KB) */ /* eeprom @0x403FB000 (4KB) */
/* rfcal @0x403FC000 (=4KB) */ /* rfcal @0x403FC000 (4KB) */
/* wifi @0x403FD000 (=12KB) */ /* wifi @0x403FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -1,8 +1,10 @@
/* Flash Split for 4M chips */ /* Flash Split for 4M chips */
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* eeprom @0x405FB000 (=4KB) */ /* empty @0x402FEFF0 (~3076KB) (3149840B) */
/* rfcal @0x405FC000 (=4KB) */ /* spiffs @0x40600000 (~-20KB) (-20480B) */
/* wifi @0x405FD000 (=12KB) */ /* eeprom @0x405FB000 (4KB) */
/* rfcal @0x405FC000 (4KB) */
/* wifi @0x405FD000 (12KB) */
MEMORY MEMORY
{ {
@ -12,5 +14,9 @@ MEMORY
irom0_0_seg : org = 0x40201010, len = 0xfeff0 irom0_0_seg : org = 0x40201010, len = 0xfeff0
} }
PROVIDE ( _SPIFFS_start = 0x40600000 );
PROVIDE ( _SPIFFS_end = 0x405FB000 );
PROVIDE ( _SPIFFS_page = 0x0 );
PROVIDE ( _SPIFFS_block = 0x0 );
INCLUDE "eagle.app.v6.common.ld" INCLUDE "eagle.app.v6.common.ld"

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~2052KB) (2101264B) */ /* empty @0x402FEFF0 (~2052KB) (2101264B) */
/* spiffs @0x40500000 (~1004KB) (1028096B) */ /* spiffs @0x40500000 (~1004KB) (1028096B) */
/* eeprom @0x405FB000 (=4KB) */ /* eeprom @0x405FB000 (4KB) */
/* rfcal @0x405FC000 (=4KB) */ /* rfcal @0x405FC000 (4KB) */
/* wifi @0x405FD000 (=12KB) */ /* wifi @0x405FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~1028KB) (1052688B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */
/* spiffs @0x40400000 (~2028KB) (2076672B) */ /* spiffs @0x40400000 (~2028KB) (2076672B) */
/* eeprom @0x405FB000 (=4KB) */ /* eeprom @0x405FB000 (4KB) */
/* rfcal @0x405FC000 (=4KB) */ /* rfcal @0x405FC000 (4KB) */
/* wifi @0x405FD000 (=12KB) */ /* wifi @0x405FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~4KB) (4112B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */
/* spiffs @0x40300000 (~3052KB) (3125248B) */ /* spiffs @0x40300000 (~3052KB) (3125248B) */
/* eeprom @0x405FB000 (=4KB) */ /* eeprom @0x405FB000 (4KB) */
/* rfcal @0x405FC000 (=4KB) */ /* rfcal @0x405FC000 (4KB) */
/* wifi @0x405FD000 (=12KB) */ /* wifi @0x405FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -1,8 +1,10 @@
/* Flash Split for 512K chips */ /* Flash Split for 512K chips */
/* sketch @0x40200000 (~487KB) (499696B) */ /* sketch @0x40200000 (~487KB) (499696B) */
/* eeprom @0x4027B000 (=4KB) */ /* empty @0x40279FF0 (~4KB) (4112B) */
/* rfcal @0x4027C000 (=4KB) */ /* spiffs @0x4027B000 (~0KB) (0B) */
/* wifi @0x4027D000 (=12KB) */ /* eeprom @0x4027B000 (4KB) */
/* rfcal @0x4027C000 (4KB) */
/* wifi @0x4027D000 (12KB) */
MEMORY MEMORY
{ {
@ -12,5 +14,9 @@ MEMORY
irom0_0_seg : org = 0x40201010, len = 0x79ff0 irom0_0_seg : org = 0x40201010, len = 0x79ff0
} }
PROVIDE ( _SPIFFS_start = 0x4027B000 );
PROVIDE ( _SPIFFS_end = 0x4027B000 );
PROVIDE ( _SPIFFS_page = 0x0 );
PROVIDE ( _SPIFFS_block = 0x0 );
INCLUDE "eagle.app.v6.common.ld" INCLUDE "eagle.app.v6.common.ld"

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~359KB) (368624B) */ /* sketch @0x40200000 (~359KB) (368624B) */
/* empty @0x40259FF0 (~4KB) (4112B) */ /* empty @0x40259FF0 (~4KB) (4112B) */
/* spiffs @0x4025B000 (~128KB) (131072B) */ /* spiffs @0x4025B000 (~128KB) (131072B) */
/* eeprom @0x4027B000 (=4KB) */ /* eeprom @0x4027B000 (4KB) */
/* rfcal @0x4027C000 (=4KB) */ /* rfcal @0x4027C000 (4KB) */
/* wifi @0x4027D000 (=12KB) */ /* wifi @0x4027D000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~455KB) (466928B) */ /* sketch @0x40200000 (~455KB) (466928B) */
/* empty @0x40271FF0 (~4KB) (4112B) */ /* empty @0x40271FF0 (~4KB) (4112B) */
/* spiffs @0x40273000 (~32KB) (32768B) */ /* spiffs @0x40273000 (~32KB) (32768B) */
/* eeprom @0x4027B000 (=4KB) */ /* eeprom @0x4027B000 (4KB) */
/* rfcal @0x4027C000 (=4KB) */ /* rfcal @0x4027C000 (4KB) */
/* wifi @0x4027D000 (=12KB) */ /* wifi @0x4027D000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~423KB) (434160B) */ /* sketch @0x40200000 (~423KB) (434160B) */
/* empty @0x40269FF0 (~4KB) (4112B) */ /* empty @0x40269FF0 (~4KB) (4112B) */
/* spiffs @0x4026B000 (~64KB) (65536B) */ /* spiffs @0x4026B000 (~64KB) (65536B) */
/* eeprom @0x4027B000 (=4KB) */ /* eeprom @0x4027B000 (4KB) */
/* rfcal @0x4027C000 (=4KB) */ /* rfcal @0x4027C000 (4KB) */
/* wifi @0x4027D000 (=12KB) */ /* wifi @0x4027D000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~1028KB) (1052688B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */
/* spiffs @0x40400000 (~6124KB) (6270976B) */ /* spiffs @0x40400000 (~6124KB) (6270976B) */
/* eeprom @0x409FB000 (=4KB) */ /* eeprom @0x409FB000 (4KB) */
/* rfcal @0x409FC000 (=4KB) */ /* rfcal @0x409FC000 (4KB) */
/* wifi @0x409FD000 (=12KB) */ /* wifi @0x409FD000 (12KB) */
MEMORY MEMORY
{ {

View File

@ -2,9 +2,9 @@
/* sketch @0x40200000 (~1019KB) (1044464B) */ /* sketch @0x40200000 (~1019KB) (1044464B) */
/* empty @0x402FEFF0 (~4KB) (4112B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */
/* spiffs @0x40300000 (~7148KB) (7319552B) */ /* spiffs @0x40300000 (~7148KB) (7319552B) */
/* eeprom @0x409FB000 (=4KB) */ /* eeprom @0x409FB000 (4KB) */
/* rfcal @0x409FC000 (=4KB) */ /* rfcal @0x409FC000 (4KB) */
/* wifi @0x409FD000 (=12KB) */ /* wifi @0x409FD000 (12KB) */
MEMORY MEMORY
{ {