Jump to content

    
Sign in to follow this  
pvo125

Scatter файл. Настройка доп. секции.

Recommended Posts

Приветствую всех! 

Нужно все массивы с картинками(битмапы) собрать в один бинарный файл. Далее этот файл будет загружаться отдельно в внешнюю 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/

Как мне настроить проект или секцию эту чтобы отладчик не пытался прошивать при старте отладки.

 

Edited by pvo125

Share this post


Link to post
Share on other sites

Зачем такие сложности? Keil умеет шить внешнюю память через какой угодно интерфейс, которым подключена эта память к МК. Нужно лишь написать или использовать готовый алгоритм.

В ..\Keil\ARM\Flash\ есть готовые реализации. При желании их можно переделать по свою плату и свою память. Да хоть по I2C заливайте Keil-ом внешнюю память, никаких проблем ))

В этом случае достаточно, например, в версии сборки release предусмотреть заливку ВСЕХ образов, а в версии debug заливать только код, отключив из выходного образа все данных для внешней памяти.

Если в образе добавилось/поменялось что-то, то собираете release, заливаете, переключаетесь обратно в debug и работаете как обычно.

Так работа пойдет быстрее ))

Share this post


Link to post
Share on other sites
Quote

а в версии debug заливать только код, отключив из выходного образа все данных для внешней памяти.

Про это действие можно подробнее? Как исключить?  Файл инит править для отладки? (в настройках есть возможность его подключать.)Потому что на данном этапе думаю мне это как раз и нужно.

Share this post


Link to post
Share on other sites
1 minute ago, pvo125 said:

Про это действие можно подробнее? Как исключить?  

Нажать правой кнопкой мыши на файл и в настройках убрать галку Include In Target Build

Там же можно настроить индивидуальные опции компилятора/билдера.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this