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

 
 
8 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> STM32 bootloader, написание собственного бута
ViKo
сообщение Feb 20 2015, 14:08
Сообщение #61


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(A. Fig Lee @ Feb 20 2015, 17:06) *
А как программа/компилятор поймет это РАМ или флаш, если обращение будет к 0х00000100 ?

А им зачем? Сказано, в 100, значит, в 100. Это пусть процессор мучается, он же знает, как его запустили.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Feb 20 2015, 14:16
Сообщение #62


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(ViKo @ Feb 20 2015, 09:08) *
А им зачем? Сказано, в 100, значит, в 100. Это пусть процессор мучается, он же знает, как его запустили.


Ну а процессор что делать будет?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 20 2015, 14:33
Сообщение #63


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(A. Fig Lee @ Feb 20 2015, 17:16) *
Ну а процессор что делать будет?

Он уже включен железно так, как задано. Может, вам мануал почитать? rolleyes.gif

Мысль, что по нулевым адресам ничего нет, мне нравится больше.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Feb 20 2015, 14:36
Сообщение #64


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(ViKo @ Feb 20 2015, 09:33) *
Он уже включен железно так, как задано. Может, вам мануал почитать? rolleyes.gif

Да, не надо нашим людям помогать. Тебя же потом и по кумполу.
Зря влез.
До свидания.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
x893
сообщение Feb 20 2015, 17:06
Сообщение #65


Профессионал
*****

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



Особенно когда люди даже прочитать не могут, а сразу строчат в форум в надежде, что им разжуют всё (однокашники).
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 21 2015, 01:22
Сообщение #66


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Может ли Cortex-M3 выполнять программу из внешней памяти?
Go to the top of the page
 
+Quote Post
x893
сообщение Feb 21 2015, 11:08
Сообщение #67


Профессионал
*****

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



Да ему пофиг какой адрес - что указано в 8000004 или 20000004 (от BOOT0/1 зависит) туда и перейдет.

Сообщение отредактировал x893 - Feb 21 2015, 11:09
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 21 2015, 11:38
Сообщение #68


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Ой ли? Надо по шинам посмотреть в руководстве.
Go to the top of the page
 
+Quote Post
x893
сообщение Feb 21 2015, 11:52
Сообщение #69


Профессионал
*****

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



Без Ой-ли. Только hardfault можно получить, если не туда куда можно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 22 2015, 12:35
Сообщение #70


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Предыдущий оратор путается в показаниях. То у него "без ой-ли", то HardFault.
Есть у кого-нибудь подтверженное практикой мнение, или и так всем ясно (что нельзя)?
Go to the top of the page
 
+Quote Post
SSerge
сообщение Feb 23 2015, 19:34
Сообщение #71


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(ViKo @ Feb 22 2015, 19:35) *
Есть у кого-нибудь подтверженное практикой мнение, или и так всем ясно (что нельзя)?

Cortex™-M3 Technical Reference Manual от ARM™
утверждает что исполнение кода запрещено только из старших 1/2 Гигабайта адресного пространства (от 0xE0000000 и до упора).
Так что при желании можно поисполнять даже содержимое регистров периферийных устройств.
Т.е. архитектура ARM не запрещает, но конкретно у STM32F1xx не получится, выборка кода запрещена для адресов 0x40000000- 0x5FFFFFFF и от 0xA0000000 до конца памяти.

Под внешнюю память отведен диапазон адресов 0x60000000 - 0x9FFFFFFF, если контроллер внешней памяти настроить соответствующим образом, то можно и из внешней памяти код исполнять.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 24 2015, 10:58
Сообщение #72


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Судя по рисунку, STM32F20X может выполнять программу из внешней памяти. А также и из внутренней OTP Flash, наверное.

А еще под картинкой написано:
S2: S-bus
This bus connects the system bus of the Cortex®-M3 core to a BusMatrix. This bus is used
to access data located in a peripheral or in SRAM. Instructions may also be fetch on this bus
(less efficient than ICode)
. The targets of this bus are the 112 KB & 16 KB internal SRAMs,
the AHB1 peripherals including the APB peripherals, the AHB2 peripherals and the external
memories through the FSMC.

То есть, можно команды выбирать откуда хочешь!? rolleyes.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 25 2015, 13:01
Сообщение #73


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Что-то не выходит у меня запустить скомпилированную со сдвигом программу.
Сделал загрузчик, пока только переход на основную программу. Занял нулевой сектор.
В основном проекте задал в Кейле в свойствах проекта начало ПЗУ 0x8004000, размер 0x3C000 (отобрал нулевой сектор для загрузчика), соответственно задал и диапазон для Flash Download. Скомпилировал, зашил. Вижу в ST-Link Utility свое зашитое. Могу и в отладчике в проекте загрузчика посмотреть память. Вроде, все как надо. Но основной проект не работает. Предполагаю, в загрузчике дело. Что-то не так. Вот фрагмент, переход.
Код
/* Если есть SP для приложения */
  if (((*(__IO uint32_t *)APPL_ADDR) & 0x2FFE0000) == 0x20000000) {
/* Адрес таблицы */
    SCB->VTOR = 0x08004000;
    // NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000);
/* Указатель на приложение */
    pFunc_t JumpAppl = (pFunc_t)(*(__IO uint32_t *)(APPL_ADDR + 4));
    __set_MSP(*(__IO uint32_t *)APPL_ADDR);
    JumpAppl();
  }
  while (true);
}

Go to the top of the page
 
+Quote Post
SSerge
сообщение Feb 25 2015, 13:41
Сообщение #74


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(ViKo @ Feb 25 2015, 20:01) *
Но основной проект не работает. Предполагаю, в загрузчике дело. Что-то не так.

NVIC_SetVectorTable() в загрузчике не особо нужен.
Это надо в самой запущенной программе сделать, потому что по умолчанию в SystemInit() регистр SCB->VTOR устанавливается на начало флеша.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 25 2015, 14:00
Сообщение #75


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(SSerge @ Feb 25 2015, 16:41) *
NVIC_SetVectorTable() в загрузчике не особо нужен.
Это надо в самой запущенной программе сделать, потому что по умолчанию в SystemInit() регистр SCB->VTOR устанавливается на начало флеша.

Это я из примеров выше в теме (или подобных) вытянул. Не использую, такой функции в CMSIS и нет. А SystemInit у меня своя, и ничего с VTOR не делает.
Плохо, в отладчике оба проекта не видны. Дохожу в загрузчике до JumpAppl() и улетаю незнамо куда, в 0xBFFFXXXX.
Go to the top of the page
 
+Quote Post

8 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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