Я пытался связать программу с 200 Кбайт постоянных данных.
Я использовал атрибут __attribute__((section(".irom.text")))
в попытке поместить его во флэш-память, так как считаю, что ESP8266 имеет 4 МБ доступной флэш-памяти.
Увы, компоновщик выдает ошибку:
bin/firmware.elf section `.irom0.text' will not fit in region `irom0_0_seg'
Используемый скрипт компоновщика - это то, что я получил от платформы ввода-вывода:
MEMORY
{
dport0_0_seg : org = 0x3FF00000, len = 0x10
dram0_0_seg : org = 0x3FFE8000, len = 0x18000
iram1_0_seg : org = 0x40100000, len = 0x8000
irom0_0_seg : org = 0x40220000, len = 0x5C000
}
INCLUDE "../ld/eagle.app.v6.common.ld"
Действительно, длина секции irom
равна 0x5C000
(376 Кбайт), может быть недостаточно для моего кода, константного массива и SDK.
Так где же обещанные 4Mbytes? Можно ли отобразить больше FLASH?