Перейти к содержанию
    

Размещение кода по определенному адресу STM32, keil(Scatter-файл)

Доброго вечера, форумчане!
Подскажите, я не могу разобраться с вопросом, связанным со Scatter-файлом, а именно как разместить какой либо код(функцию или переменную, например) по определенному адресу в Keil . Не хватает знаний. Сразу скажу, ответ на вопрос искал на просторах интернета долго, пишу сюда так как недоперло до конца.
Есть Scatter-файл со следующим содержанием:


LR_IROM1 0x08000000 0x00080000 { ; load region size_region
ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00020000 { ; RW data
.ANY (+RW +ZI)
}
}

погуглив, я узнал, что: LR_IROM1 – это регион(область) загрузки, ER_IROM1 – это регион(область) выполнения. Я понял так, что область загрузки это область памяти куда будет загружен нами указанный код , в данном примере код будет загружен в область, которая начинается с адреса 0x08000000 размером 0x00080000.

1) Ну что же такое регион(область) выполнения(ER_IROM1 0x08000000 0x00080000 )?

Второй вопрос:
2) Если я дал правильное определение что такое "LR_IROM1", то почему в теле LR_IROM1 прописано RW_IRAM1 0x20000000 0x00020000, ведь эти адреса( 0x20000000 0x00020000) никак не входят в область 0x08000000 0x00080000 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 minutes ago, maksimdag0 said:

не могу разобраться с вопросом

в мануале на сайте arm все подробно разжевано по этой теме, там смотрели?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Forger сказал:

в мануале на сайте arm все подробно разжевано по этой теме, там смотрели?

Первое, что я сделал. 

Да там разжевано все, но если говорить о определении того что такое РЕГИОН ЗАГРУЗКИ и что такое РЕГИОН ВЫПОЛНЕНИЯ, то там написано об это минимально.

 

Я никак не могу понять что такое "регион загрузки" и что такое такое "регион выполнения". Что это? 

 

В моем сложившимся представлении flash память является "регионом загрузки" и "регионом выполнения", но мне кажется, что это бред. Я не имею представление даже что это, если можете, обьясните пожалуста конкретно)

Еще я нашел вроде хороший сайт где описано различие, но так написано не понятно для меня, либо просто я тугодум.

Прикрепил во вложении скрин

image.thumb.png.ee9de7adad94c3d0abcf7d5b580087eb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...