Перейти к содержанию
    

Здравствуйте. Занимаюсь программированием микроконтроллеров некоторое время, имея знания достаточные для создания работающего кода, использования дебага и процесса прошивки микроконтроллера. Возникло желание глубже разобраться в устройстве микроконтроллера - узнать как работает bootloader, как устроена память в микроконтроллере. Некоторый минимум информации помню с университета (архитектура фон Неймана, Гарвардская, более-менее представляю как работают команды ассемблера). Хочу разобраться с микроконтроллерами серии STM32. Семейство любое, потому что подозреваю, что загрузчик устроен на всех одинаково. Мне нужны источники информации, где я могу почитать про загрузку микроконтроллера (например, я нашел вот это, но прочтение понимания мне не добавило). Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что именно непонятно? Если речь про МК на Cortex-M то стартуют они так: По сигналу RESET все регистры МК переводятся в исходное (RESET) состояние, далее - делается выборка из RESET-вектора таблицы прерываний адреса верхушки стека и стартового адреса исполняемого кода, происходит переход на исполняемый код. Всё.

Если в RESET-векторе находится стартовый адрес бутлоадера, то переход произойдёт на него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, jcxz said:

А что именно непонятно? Если речь про МК на Cortex-M то стартуют они так: По сигналу RESET все регистры МК переводятся в исходное (RESET) состояние, далее - делается выборка из RESET-вектора таблицы прерываний адреса верхушки стека и стартового адреса исполняемого кода, происходит переход на исполняемый код. Всё.

Если в RESET-векторе находится стартовый адрес бутлоадера, то переход произойдёт на него.

Например, каким условием делается выборка из Reset-вектора таблицы прерываний. Да и про сам старт МК почитать в документации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для STM32F103 читать RM0008 , раздел 7.1.1 System reset
A system reset sets all registers to their reset values except the reset flags in the clock
controller CSR register and the registers in the Backup domain (see Figure 4).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, mcheb said:

Для STM32F103 читать RM0008 , раздел 7.1.1 System reset
A system reset sets all registers to their reset values except the reset flags in the clock
controller CSR register and the registers in the Backup domain (see Figure 4).

 А отличается Reset от простого включения мк при подаче питания?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, ZeratulSC007 said:

я нашел вот это, но прочтение понимания мне не добавило

Эт потому что вы нашли только начало описания встроенных бутлодеров. 
А дальше еще надо найти талмуды с описанием их API.
Но полное  и исчерпывающее описание бутлодеров из ROM вам никто не даст. 

Поэтому как  правило этими  бутолодерами не пользуются. Делают свои. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, AlexandrY said:

Эт потому что вы нашли только начало описания встроенных бутлодеров. 
А дальше еще надо найти талмуды с описанием их API.
Но полное  и исчерпывающее описание бутлодеров из ROM вам никто не даст. 

Поэтому как  правило этими  бутолодерами не пользуются. Делают свои. 

А можно в двух словах, почему свои? Я, в силу недостаточности опыта, никогда не делал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, ZeratulSC007 сказал:

А можно в двух словах, почему свои? Я, в силу недостаточности опыта, никогда не делал.

Потому что не всегда удобны и не всегда подходят под конкретную задачу.

А еще, например, потому, что прошивку коммерческого девайся нужно, по-хорошему, вовсе шифровать.

Причин тьма. А заводской загрузчик, если он есть, удобно использовать для первоначальной прошивки своего загрузчика:spiteful:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, ZeratulSC007 said:

где я могу почитать про загрузку микроконтроллера

Почитайте книги Джозефа Ю. Эти. Они, конечно, не очень легки в чтении, но всё же легче, чем материалы с arm.com (имхо). А самое главное - информация в книгах структурирована и подобрана по нарастающей. Выберите подходящее семейство: cortex-m0/m3/m4. Но: не думайте, что за неделю или пару вы этот материал освоите. Читать надо вдумчиво, проверяя прочитанное в симуляторе, а лучше на реальной плате через отладчик. Хотя я бы поставил реальную задачу сделать какое-либо устройство. Делая его, вы так или иначе разберётесь с микроконтроллером. Правда читать книги при этом не отменяется. А библиотеки (stm cube и подобные) использовать категорически не стоит, лучше писать все драйвера самостоятельно. Иначе цель изучения будет упущена.

5 hours ago, ZeratulSC007 said:

Например, каким условием делается выборка из Reset-вектора таблицы прерываний.

Считайте, что железо МК так спроектировано, что по сбросу оно в начале таблицы вычитываем значение верхушки стека, а затем - адрес перехода (на приложение, бут, куда угодно).

4 hours ago, ZeratulSC007 said:

А отличается Reset от простого включения мк при подаче питания?

В первом грубом приближении можете считать, что нет. Но это очень грубое приближение. Например, у вас сохранятся в ОЗУ прежнее значения в тех областях, которые не инициализируются startup-кодом (глобальные объекты).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

Почитайте книги Джозефа Ю...

Отмечу лишь весьма "странную" новость, в Терраэлектронике эту книгу можно купить сейчас по цене коробки спичек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 минут назад, Arlleex сказал:

Отмечу лишь весьма "странную" новость, в Терраэлектронике эту книгу можно купить сейчас по цене коробки спичек.

По моему, это первая книга, которую написал Ю по Cortex. Морально устарела, вот так-то. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, ViKo сказал:

По моему, это первая книга, которую написал Ю по Cortex. Морально устарела, вот так-то. 

Вот только годной инфы в ней больше, чем на 99% всех русскоязычных порталах, посвященных STM32 и Cortex-Mx в целом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Arlleex said:

Отмечу лишь весьма "странную"

Действительно, странно. Скорее всего, опечатка в цене.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...