pvo125 0 17 января, 2020 Опубликовано 17 января, 2020 (изменено) · Жалоба Приветствую всех! Нужно все массивы с картинками(битмапы) собрать в один бинарный файл. Далее этот файл будет загружаться отдельно в внешнюю spi flash. Делаю так Создал в scatter файле регион и секцию extrom LR_IROM1 0x08004000 0x00040000 { ; load region size_region ER_IROM1 0x08004000 0x00040000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00010000 { ; RW data .ANY (+RW +ZI) } } LR_ROM1 0x00010000 0x00010000 { ER_ROM1 0x00010000 0x00010000 { *(extrom) } } Далее перед всеми массивами с битмапами добавил строчку. __attribute__((section("extrom"))) const char bitmap[]={.........}; Собираю проект и далее с помошью утилиты fromelf делаю бинарник из axf файла. Вернее fromelf делает 2 файла обзывает их ER_ROM1 - 150 KB бинарник с кодом ER_ROM2 -10 KB бинарник с картинками. На этом этапе все четко и именно то чего добивался. Далее я пытаюсь запустить отладку и отладчик пытается прошить сначала ER_ROM2 по адресу 0x0001 0000 ('этот адрес может быть и 0x0 или 0x1000 он во внешней spi flash) получается ошибка. Quote No Algorithm found for: 00010000H - 0001043FH Partial Erase Done (areas with no algorithms skipped!) No Algorithm found for: 00010000H - 0001043FH Partial Programming Done (areas with no algorithms skipped!) Partial Verify OK (areas with no algorithms skipped!) Далее завершается с ошибкой. Quote Cannot access terget. Shuttung down debig session/ Как мне настроить проект или секцию эту чтобы отладчик не пытался прошивать при старте отладки. Изменено 17 января, 2020 пользователем pvo125 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 17 января, 2020 Опубликовано 17 января, 2020 · Жалоба Зачем такие сложности? Keil умеет шить внешнюю память через какой угодно интерфейс, которым подключена эта память к МК. Нужно лишь написать или использовать готовый алгоритм. В ..\Keil\ARM\Flash\ есть готовые реализации. При желании их можно переделать по свою плату и свою память. Да хоть по I2C заливайте Keil-ом внешнюю память, никаких проблем )) В этом случае достаточно, например, в версии сборки release предусмотреть заливку ВСЕХ образов, а в версии debug заливать только код, отключив из выходного образа все данных для внешней памяти. Если в образе добавилось/поменялось что-то, то собираете release, заливаете, переключаетесь обратно в debug и работаете как обычно. Так работа пойдет быстрее )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 17 января, 2020 Опубликовано 17 января, 2020 · Жалоба Этот алгоритм нужно выбрать и добавить в настройках опций проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pvo125 0 17 января, 2020 Опубликовано 17 января, 2020 · Жалоба Quote а в версии debug заливать только код, отключив из выходного образа все данных для внешней памяти. Про это действие можно подробнее? Как исключить? Файл инит править для отладки? (в настройках есть возможность его подключать.)Потому что на данном этапе думаю мне это как раз и нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 17 января, 2020 Опубликовано 17 января, 2020 · Жалоба 1 minute ago, pvo125 said: Про это действие можно подробнее? Как исключить? Нажать правой кнопкой мыши на файл и в настройках убрать галку Include In Target Build Там же можно настроить индивидуальные опции компилятора/билдера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 17 января, 2020 Опубликовано 17 января, 2020 · Жалоба А можно написать алгоритм прошивки в /dev/null и в Debug ветке выбрать его для прошивки внешней флэшь. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться