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

 
 
> stm32 embedded SRAM boot mode
igorle
сообщение May 8 2013, 22:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



На моем учебном борде (stm32f103c8) я умею загружать программу через SWD или через UART.
Хочу освоить загрузку из памяти, но не могу найти информацию ни на русском, ни на английском.

Про bootloader (который с boot0=1 boot1=0) много говорят, а про SRAM (который boot0 = boot1 =1) только упоминают, что есть такой. И все.

Работаю с Keilом.
Я догадываюсь, что на закладке target в свойствах проекта надо начальный адрес с 0x08000000 на 0x20000000 поменять, и соответственно начало РАМ сдвинуть с 0x20000000 на 0x20002800, но этого не достаточно.
Еще в настройках дебагера по умолчанию разрешалось использовать РАМ начиная с 20000000. Я это изменил на 20002800.

Когда я пытаюсь забежать программу - получаю сообщение "Flash Download Filed". Логично, мы же должны грузить в РАМ, а не во флэш. Но где и как сказать - не догоняю.

Кто-нибудь решал такую проблему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение May 11 2013, 06:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



А еще вот такой момент. Чтобы не убивать флеш частыми перезаписями (я понимаю, что 100000 - это "по уши", но тем не менее), переносим код сразу в ОЗУ и запускаем оттуда?
То есть чисто для отладки, как будто стартап уже перенес код в ОЗУ

Сам таким способом не пользовался, но...
Go to the top of the page
 
+Quote Post
igorle
сообщение May 11 2013, 09:36
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Да, именно чтобы не расходовать ресурс флеша. Я полагаю, что только для отладки такой режим загрузки и предусмотрен. В конечном продукте этот режим ведь невозможно использовать, правда?

Я делаю первые шаги в STM32. Спаял первый борд. Вот и экономлю ресурс.

В кейле в образцах есть конфигурации для старта из SRAM. Но там нет настроек дебагера (они же не знают какой дебагер у меня будет) И вот тут-то все и застопорилось.

Как оказалось, в интернетах тема не обсуждается. Или все банально, или никому не нужно..
Go to the top of the page
 
+Quote Post
toweroff
сообщение May 11 2013, 14:22
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(igorle @ May 11 2013, 13:36) *
Как оказалось, в интернетах тема не обсуждается. Или все банально, или никому не нужно..

нет, как раз обсуждалось и на этом форуме. Не уверен, что применительно к STM32, но точно помню, что кто-то грузил программу во внешнюю, кстати, SDRAM
То есть еще как-то ухитрялись изначально конфигурить EMC

что же касается внутренней SRAM, попробуйте собрать проект в ее адресном пространстве и добавьте INI файл, в котором будет такое:
Код
$ = 0x20000000

адрес подправьте на начало кода (там, где вектор Reset'а)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 18:05
Рейтинг@Mail.ru


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