реклама на сайте
подробности

 
 
> Вопрос по scatter-файлу, KEIL, stm32f103c8
Nikitoc
сообщение Sep 19 2011, 15:02
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Всем привет. Пытаюсь изменить адрес загрузки кода (и соответственно адрес сброса) путем редактирования scatter-файла.
Его изначальный вид:
Код
LR_IROM1 0x08000000 0x000010000 {   ; load region size_region
     ER_IROM1 0x08000000 0x000010000 { ; load address = execution address
      *.o (RESET, +First)
      *(InRoot$Sections)
      .ANY (+RO)
    
     }
     RW_IRAM1 0x20000000 0x00005000  { ; RW data
      .ANY (+RW +ZI)
     }
   }

Пытаюсь изменить на такой адрес:
Код
LR_IROM1 0x08000600 0x00000FA00 {   ; load region size_region
     ER_IROM1 0x08000600 0x00000FA00 { ; load address = execution address
      *.o (RESET, +First)
      *(InRoot$Sections)
      .ANY (+RO)
  
     }
     RW_IRAM1 0x20000000 0x00005000  { ; RW data
      .ANY (+RW +ZI)
     }
   }

Запускаю отладчик - перехода по вектору сброса не происходит. Что я делаю неправильно?
Цель этих извращений - оставить место для загрузчика (будет отдельным проектом) с 0x08000000 по 0x08000600.
Похожих тем перелопатил целую кучу, ответа не нашел. Может быть я в корне неправильно понимаю процедуру переназначения стартового адреса?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SII
сообщение Sep 21 2011, 12:20
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Да там ничего интересного больше нет -- настройка для трассировки с использованием ULINK Pro, что к Вашей задаче никакого отношения не имеет.

Что касается серийного изделия, то и программа для него прошивается во флэш-память, размещаясь по нужным адресам, то есть обычно с нулевого, что автоматически снимает проблему: после сброса в VTOR лежат нули, и всё будет на месте. Естественно, и scatter-файл тогда должен строить образ для размещения и работы по указанному адресу.

Кроме того, обычно есть несколько альтернативных вариантов загрузки, задаваемых физическим подключением определённых ног МК к земле или питанию. Всё это описывается в даташите. Поскольку речь о STM32F103xx, то могу сказать точно, где именно: страницы 60-61 (даташит ревизии 13 от мая этого года).
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение Sep 21 2011, 20:56
Сообщение #3


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Цитата(SII @ Sep 21 2011, 15:20) *
Что касается серийного изделия, то и программа для него прошивается во флэш-память, размещаясь по нужным адресам, то есть обычно с нулевого, что автоматически снимает проблему: после сброса в VTOR лежат нули, и всё будет на месте. Естественно, и scatter-файл тогда должен строить образ для размещения и работы по указанному адресу.

Так. Я вроде немного прояснил для себя ситуацию. Получается, этот финт ушами помогает при разработке бутлоадера и основной программы двумя разными проектами? Бутлоадер разрабатывается одним проектом (без перемещения таблицы) и в конце имеет команду перехода на адрес 0x08000600 (в данном случае). А основная программа отлаживается с адреса 0x08000600, так будто бы она получила управление от бутлоадера?
Выходит, проект можно разбить таким образом на несколько отдельных модулей, размещенных по конкретным адресам и передающим управление друг другу при заданных условиях? Главное, только, чтобы "стартовый" модуль располагался в самом начале флешь-памяти? Я правильно рассуждаю?
И еще один вопросик: как сказать программатору (у меня ULINK), чтобы при программировании одной части проекта (бута или основной программы) он не затирал другую? Т.е. программировал четко заданную область? В настройках программатора выбрать "Erase Sectors"?
P.S.: совсем забыл! Спасибо за помощь! cheers.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016