Nosaer 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Добрый день Пытаюсь записывать свои данные во Flash на STM32f0xx, при компиляции выдает кучу ошибок по типу: ANV_AMP_MTR\ANV_AMP_MTR.axf: Error: L6407E: Sections of aggregate size 0x40 bytes could not fit into .ANY selector(s). ANV_AMP_MTR\ANV_AMP_MTR.axf: Error: L6406E: No space in execution regions with .ANY selector matching iusefp.o(.text). HAL_FLASH_Unlock(); FLASH_EraseInitTypeDef EraseInitStruct; EraseInitStruct.PageAddress = 0x08004000; EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; EraseInitStruct.NbPages = 1; uint32_t SectorError = 0; if (HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError) != HAL_OK) { HAL_FLASH_Lock(); } HAL_FLASH_Unlock(); HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, 0x08010000, AHReady); HAL_FLASH_Lock(); Пробовал менять адрес для записи, на разные области памяти. Ситуация вообще не меняется Собственно ругается на строки, где я передаю адрес для записи(стирания) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 57 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба На сайте keil или интернете читали об ошибке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nosaer 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Читал. Если я правильно понял, то ошибка обычно возникает когда значение IRAM меньше, чем на самом деле память у контроллера. В своем случае с 0x1000 поднимал до 0x5000 на вскидку, пробовал подставить адрес из нового диапазона. Ошибки все те же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 57 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба Читал. Если я правильно понял, то ошибка обычно возникает когда значение IRAM меньше, чем на самом деле память у контроллера. В своем случае с 0x1000 поднимал до 0x5000 на вскидку, пробовал подставить адрес из нового диапазона. Ошибки все те же. Вы же пишите во флэш, причем здесь ОЗУ? И как можно навскидку поднимать IRAM, вдруг по этим адресам её нет, у вас точно в чипе есть 20 Кбайт? :) Видимо 0x08010000 вылетает за размер флэша прописаного в проекте, у вас в чипе точно больше 32 КБайт? Для уточнения смотрите в референс мануал, раздел "Memory map and register boundary addresses". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nosaer 0 22 августа, 2017 Опубликовано 22 августа, 2017 · Жалоба В плане адреса, согласно мануалу он существует. К тому же я практически методом перебора уже перепробовал всевозможные адреса Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amiller 2 22 августа, 2017 Опубликовано 22 августа, 2017 · Жалоба В плане адреса, согласно мануалу он существует. К тому же я практически методом перебора уже перепробовал всевозможные адреса Простите, а где Вы это увидели? На приведенной картинке видно, что flash расположена 0x08000000 - 0x08007FFF. А Вы обращаетесь по адресу 0x08010000, что за пределами. Может проблема в подсчёте ноликов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nosaer 0 22 августа, 2017 Опубликовано 22 августа, 2017 · Жалоба Код скопировал скорее всего когда пробовал методом перебора добиться отсутствия ошибки, извиняюсь, не доглядел. В основном пытаюсь писать во флеш по даташиту. И как уже писал выше, куда только пробовал не писать. Сейчас заметил, что при включении оптимизации(а она у меня отключена), компилируется без ошибок. Но в память все равно не пишет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sadat 0 22 августа, 2017 Опубликовано 22 августа, 2017 · Жалоба Берём нормально работающий пример из библиотек, проверяем, что работает, а тогда только что-то правим. Ведь, когда у большинства всё работает : стирается и пишется, то, очевидно, что что-то не так с руками, а не глюк процессора. И, если бы каждый из нас создавал по этому поводу тему - сотни страниц гарантированы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться