Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103 boot embedded SRAM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Golikov A.
Всем привет!

Кто может внятно объяснить зачем нужен режим загрузки из embedded SRAM?
у STM32f103 пинами выбирается
0 - загрузка из флешки (обычная загрузка)
1 - загрузка из системной памяти (это как я понял заводской загрузчик с включенным UART) кстати его можно уничтожить?
2 - загрузка из embedded SRAM, программа там уже откуда то должна быть.

бут пины семплируются после сброса и стандбай режима. При этом в стендбай режиме внутренняя SRAM не сохраняется, то есть остается один сброс.

Это для обновления флешки, когда программа обновления работает из СРАМа? А кто ее туда поместил, какое то внешнее устройство через интерфейс? И потом вызвало сброс с правильно заданными пинами, так что ли? И если что-то пошло не так, то все плата - кирпич?

jorikdima
Цитата(Golikov A. @ Apr 19 2016, 12:06) *
Это для обновления флешки, когда программа обновления работает из СРАМа?

Не знаком с чипом, но предположу, что это именно для этого, а туда загрузчик кладется принятый стандартным загрузчиком. Типа сначала работает просто лоадер, а вы грузите через него "крутой" и позле загрузки переключаетесь на него.
Golikov A.
А чего обычным сразу не обновить? Или типа это для хитрошифрований?
Ок, но через встроенный загрузчик можно записать данные в СРАМ и стартануть прогу оттуда, без бут режима. Ровно как и из обычной программы можно пойти по тому же пути, напихать в память и стартануть оттуда...
не понимаю пока смысла такого режима загрузки... только пины и регистры что ли сбросить?
ViKo
В отладчике программу можно забросить в ОЗУ, и оттуда запускать, не насилуя флэш.
Golikov A.
А без бут режима из срам, разве это не работает?
scifi
Цитата(Golikov A. @ Apr 19 2016, 23:06) *
2 - загрузка из embedded SRAM, программа там уже откуда то должна быть.

Может быть, я что-то пропустил, но это никому не нужно. ИМХО, делали схему загрузки и подумали "почему бы и нет?"
ViKo
Цитата(Golikov A. @ Apr 19 2016, 23:39) *
А без бут режима из срам, разве это не работает?

Перемычками ОЗУ отображается на нулевые адреса, и отлаживается программа, написанная для флэш, с теми же нулевыми адресами.
jcxz
Цитата(Golikov A. @ Apr 20 2016, 02:06) *
Кто может внятно объяснить зачем нужен режим загрузки из embedded SRAM?

Во всех МК, где это возможно (LPC17xx, LPC43xx, Tiva, ...) и пока позволяет размер ПО в своих проектах отлаживаю ПО в SRAM (или внешней RAM если есть).
Плюсы:
1. Загрузка ПО (JTAG) идёт быстрее.
2. Флеш меньше изнашивается.
3. Когда надо поставить много бряков, больше чем кол-во поддерживаемых эмулятором аппаратных, установка программного бряка в код во флешь вызывает его перепрограммирование (многократное: установка снятие, подключение/отключение отладчика и т.п.) и просто жутко тормозит работу и приводит к сбоям реалтайм-процессов в отлаживаемом ПО. Программные бряки в ОЗУ ставятся быстро и незаметно для глаза и даже не сбивают быстрые реалтайм-процессы.

to Golikov A.: давненько Вас не видно было rolleyes.gif
Golikov A.
Цитата
Перемычками ОЗУ отображается на нулевые адреса, и отлаживается программа, написанная для флэш, с теми же нулевыми адресами.

Нет системная память отображается в 0 адреса, а вот SRAM остается по своим, даже в режиме загрузки, и потому вектора ремапить надо, отдельно написано в описании.

Цитата
Может быть, я что-то пропустил, но это никому не нужно. ИМХО, делали схему загрузки и подумали "почему бы и нет?"

Я вот что-то тоже не могу придумать зачем такое может быть надо. Может тянут на будущее для многоядерных процов....

Цитата
Во всех МК, где это возможно (LPC17xx, LPC43xx, Tiva, ...) и пока позволяет размер ПО в своих проектах отлаживаю ПО в SRAM (или внешней RAM если есть).

Никто не спорит, вопрос только в том надо ли для этого задавать другой режим загрузки? Вы переключаете ноги на бут из СРАМ? Мне почему то казалось что жетаг и среда сама справлялась с этим, без выбора другой конфигурации загрузки проца.


Цитата
to Golikov A.: давненько Вас не видно было

Обиделся на несправедливые 10% предупрежденийsm.gif
jcxz
Цитата(Golikov A. @ Apr 20 2016, 14:30) *
Никто не спорит, вопрос только в том надо ли для этого задавать другой режим загрузки? Вы переключаете ноги на бут из СРАМ? Мне почему то казалось что жетаг и среда сама справлялась с этим, без выбора другой конфигурации загрузки проца.

Иногда да - переключаю. Если во флешь есть код, который после вкл. питания и до подключения JTAG что-то успевает сделать нехорошее (что и JTAG потом бывает не подключается), то приходится стирать флешь. Но если есть возможность переключить в режим загрузки из ОЗУ, то и стирать FLASH не надо.
Golikov A.
Хм..
то есть если вдруг во флеш что-то что может навредить
системная память не подходит потому что настраивает УАРТ и тоже может навредить
то есть такой 3 режим, когда всегда гарантировано чистая память при перебросе питания, интересно... Фактически синоним не грузить вообще....
При этом если в память что-то записать не важно как, то можно смотреть как оно грузится.
А вот если ножку сброса дернуть, память СРАМ не теряет данные?

Получается чисто такой отладочный режим...

jcxz
Цитата(Golikov A. @ Apr 20 2016, 14:41) *
А вот если ножку сброса дернуть, память СРАМ не теряет данные?

Обычно нет. Только часть её может портиться встроенным boot-ом.
scifi
Цитата(Golikov A. @ Apr 20 2016, 11:30) *
Я вот что-то тоже не могу придумать зачем такое может быть надо. Может тянут на будущее для многоядерных процов....

Это точно нужно для Cortex-M0, где нет регистра SCB->VTOR. Может быть, на это и нацеливались...
Golikov A.
СРАМ не мапиться в 0 регион, не поможет, без втора...

Думаю что это действительно инженерный режим, такой способ сделать чистую плату ничего не стирая, при этом можно залить программу, и проц. будет корректно отрабатывать сброс.
scifi
Цитата(Golikov A. @ Apr 20 2016, 12:06) *
СРАМ не мапиться в 0 регион, не поможет, без втора...

А, ну да, не заметил. Тогда совсем не понятно, кому нужно это чудесное чудо.
Golikov A.
Мне кажется версия предложенная выше - рабочая.

Это способ включить проц как бы пустым, при сохранении прошивки во флеше. Можно загрузить, подключить жетаг, что-то сделать, проверить. Может даже залить какую-то диагностику, даже вроде сбросом подергать, посмотреть что надо.
jcxz
Цитата(Golikov A. @ Apr 21 2016, 02:17) *
Это способ включить проц как бы пустым, при сохранении прошивки во флеше. Можно загрузить, подключить жетаг, что-то сделать, проверить. Может даже залить какую-то диагностику, даже вроде сбросом подергать, посмотреть что надо.

Даже такое можно наверное сделать на МК с защищённой прошивкой, которую считать нельзя, стереть тоже (чтоб не потерять), а хочется поработать (или потестить) с периферией платы к примеру.
x893
Если запрещено в Option bytes, то ничего не выйдет.
Я использую для отладки программ, что бы не перезаписывать флэш
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.