|
Что у STM32 после таблицы прерываний? |
|
|
|
Aug 15 2018, 13:31
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 13-05-09
Пользователь №: 49 008

|
Всем привет. Для написания собственного бутлоадера, интересует что находится между окончанием таблицы прерываний и адресом входа в основную программу (в частности начало файла startup)? Начинается с такого: Код 0x080000C0 F000F802 BL.W __scatterload (0x080000C8) 0x080000C4 F000F83E BL.W __rt_entry (0x08000144) 0x080000C8 A00C ADR r0,{pc}+0x34; @0x080000FC ... Это в Keil по крайне мере. В отладчике проверил, в этот кусок кода попадаем в конце выполнения startup файла. Мысль одна, что это какая то подготовка регистров ядра. Кто может подсказать, там есть что-то важное или на этот кусок не нужно обращать внимания (не трогать его вообще) и там все всегда стандартно (одинаково)? Если этот код будет дублироваться как в самом загрузчике, так и в основной программе - это нормально? Или может в проекте с основной программой нужно как то написать scatter файл, чтоб проект вообще компилировался без этой инициализации и startup файла?
Сообщение отредактировал maxntf - Aug 15 2018, 13:34
|
|
|
|
|
 |
Ответов
|
Aug 16 2018, 08:24
|

Профессионал
    
Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226

|
Цитата(jcxz @ Aug 16 2018, 11:18)  У Вас САМ segger это делает??? Странно... у меня он делает то, что ему указано в разделе "J-Link/J-Trace\Setup\Reset" свойств проекта IAR. Какой-то он у Вас больно самостоятельный.  То что вопрос задал именно этот "кто-то", видно уже из первого поста.  SEGGER это делает в своём коде для JLink-OB. Для вызова бутлодера, который обновляет прошивку свою. А так как код их бутлодера неизвестен, то приходится вызывать системный (DFU) и через него менять прошивку на новую. Но это совсем другая история.
|
|
|
|
Сообщений в этой теме
maxntf Что у STM32 после таблицы прерываний? Aug 15 2018, 13:31 Forger Достаточно лишь сделать scatter-файл (скрипт линке... Aug 15 2018, 13:44 jcxz Цитата(maxntf @ Aug 15 2018, 16:31) Для н... Aug 15 2018, 14:12 maxntf Меня интересует, нужна ли повторная инициализация ... Aug 16 2018, 01:22 jcxz Цитата(maxntf @ Aug 16 2018, 04:22) Меня ... Aug 16 2018, 05:15 Forger Цитата(maxntf @ Aug 16 2018, 04:22) Меня ... Aug 16 2018, 05:37 x893 Можно использовать NVIC_SystemReset
Тогда и деиниц... Aug 16 2018, 06:54 Forger Цитата(x893 @ Aug 16 2018, 09:54) Можно и... Aug 16 2018, 06:57 jcxz Цитата(x893 @ Aug 16 2018, 09:54) Можно и... Aug 16 2018, 07:26  aaarrr Цитата(jcxz @ Aug 16 2018, 10:26) 1) ...и... Aug 16 2018, 07:43   x893 Цитата(aaarrr @ Aug 16 2018, 10:43) Стави... Aug 16 2018, 07:45   jcxz Цитата(aaarrr @ Aug 16 2018, 10:43) Стави... Aug 16 2018, 07:53    aaarrr Цитата(jcxz @ Aug 16 2018, 10:53) Нет. Не... Aug 16 2018, 08:11   klen Цитата(aaarrr @ Aug 16 2018, 10:43) Стави... Aug 16 2018, 12:35    aaarrr Цитата(klen @ Aug 16 2018, 15:35) модуль ... Aug 16 2018, 12:48    Arlleex Цитата(klen @ Aug 16 2018, 16:35) костыль... Aug 16 2018, 12:55     x893 Цитата(Arlleex @ Aug 16 2018, 15:55) Это ... Aug 16 2018, 14:16  Alechek Цитата(jcxz @ Aug 16 2018, 12:26) 1) ...и... Aug 16 2018, 07:46   jcxz Цитата(Alechek @ Aug 16 2018, 10:46) Даже... Aug 16 2018, 07:59 x893 Конечно.
И упростить. Aug 16 2018, 07:04 x893 1. Не верно, так как зависит от программиста
2. Мы... Aug 16 2018, 07:41 jcxz Цитата(x893 @ Aug 16 2018, 10:41) 1. Не в... Aug 16 2018, 07:45  x893 Цитата(jcxz @ Aug 16 2018, 10:45) Т.е.: е... Aug 16 2018, 07:53 Forger Цитата(x893 @ Aug 16 2018, 10:41) 1. Не в... Aug 16 2018, 07:46  x893 Цитата(Forger @ Aug 16 2018, 10:46) Не за... Aug 16 2018, 07:54   Forger Цитата(x893 @ Aug 16 2018, 10:54) Настоящ... Aug 16 2018, 08:08    x893 Цитата(Forger @ Aug 16 2018, 11:08) Вы по... Aug 16 2018, 08:10     Forger Цитата(x893 @ Aug 16 2018, 11:10) Намёк п... Aug 16 2018, 08:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|