Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Мелкие вопросы по МК и ПЛИС.

Вс фев 18, 2018 20:13:26

а в каких случаях нужен бутлодер и что он загружает?


Загружает он прошивку в свободную часть МК, нужен, например для прошивки отличным от Spi интерфейсом (есть бутлоадеры для прошивки через виртуальный USB, Uart и тд). Сам бутлоадер это под программа которая принимает информацию по даному интерфейсу, и записывает её во флеш.

Re: Мелкие вопросы по МК и ПЛИС.

Пн фев 19, 2018 20:47:14

понятно. это можно назвать "нестандартные" способы прошивки.

Re: Мелкие вопросы по МК и ПЛИС.

Пн фев 19, 2018 21:31:26

Ну почему же не стандартные, вполне стандартные, о чём написано в даташите. Плюс ботлоадера в том что пользователь сам решает через какой интерфейс он хочет обновляться, и помимо этого позволяет переписывать прошивку контроллера постранично, т.е. захотели и переписали например только 3 страницу а не стирая весь кристалл как это обычно происходит при использовании SPI.

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 08:27:18

Jack-Sidr писал(а):Сам бутлоадер это под программа

Я бы сказал, что это не подпрограмма, а маленькая полноценная отдельная программа со своими прерываниями и полностью независимая от основной программы.

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 08:32:01

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

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 09:09:33

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

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

И да и нет: то что в контроллере специально для этого предусмотрено место и возможность стартовать с него то это как стандартное решение(так разработчиком заложено), а то что пользователь туда положит это не стандартное(индивидуальное).

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 09:25:53

все теперь понятно.
но я спрашивал на всякий случай. у меня пока нет таких больших проектов, чтобы занимать область загрузчика.
два самых больших моих проекта занимают примерно 4 кБ - половину программной памяти. до области загрузчика еще далеко...

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 13:21:24

Вот тут можете посмотреть про бутлоадер
https://hubstub.ru/programming/77-prosh ... ouder.html
https://hubstub.ru/stm32/159-pishim-svo ... stm32.html

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 16:07:12

спасибо. почитал, интересно.

Re: Мелкие вопросы по МК и ПЛИС.

Вт фев 20, 2018 16:59:15

По этим ссылкам не рассмотрен вопрос таблицы адресов прерываний (для STM32). Если и бутлоадер и основная прошивка используют, например, прерывания одного и того же таймера (или любой другой периферии), то возникает коллизия обработчиков этого прерывания. У бутлоадера он один, у основной прошивки другой. А адрес обработчика прерывания указан в таблице адресов прерываний, находящейся по фиксированному адресу (0x08000004). А значит возникает необходимость ремапить таблицу прерываний в конце работы бутлоадера или в начале основной прошивки.

Re: Мелкие вопросы по МК и ПЛИС.

Ср фев 21, 2018 11:30:51

Вопрос по 32F0308Discovery (которая с F030). Погонял на ней пример с таймерами из сниппетсов "в лоб", без переделки. Теперь вопрос - если в нём имеется всё таки TIM2, что же тогда камень из себя представляет по железу?

Re: Мелкие вопросы по МК и ПЛИС.

Ср фев 21, 2018 14:05:19

По этим ссылкам не рассмотрен вопрос таблицы адресов прерываний (для STM32). Если и бутлоадер и основная прошивка используют, например, прерывания одного и того же таймера (или любой другой периферии), то возникает коллизия обработчиков этого прерывания. У бутлоадера он один, у основной прошивки другой. А адрес обработчика прерывания указан в таблице адресов прерываний, находящейся по фиксированному адресу (0x08000004). А значит возникает необходимость ремапить таблицу прерываний в конце работы бутлоадера или в начале основной прошивки.

В точку, как-то и забыл про это. Делается это так, сначала программы добавляется след учаток кода
Код:

 __set_PRIMASK(1);

SCB->VTOR = Application_address;

__set_PRIMASK(0);


Re: Мелкие вопросы по МК и ПЛИС.

Ср фев 21, 2018 14:38:01

Угу, это когда есть возможность ремапить саму таблицу :)
В Cortex M0, например, этого нельзя сделать. Более универсальный способ - скопировать таблицу прерываний в оперативку и ремапнуть оперативку на адрес 0x00000000
В конце бутлоадера:
Код:
   __disable_interrupt();
   NVIC->ICER[0] = 0xFFFFFFFF;

   /* Jump to user application */
   JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
   Jump_To_Application = (pFunction) JumpAddress;

   /* Initialize user application's Stack Pointer */
   __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);

   /* Jump to application */
   Jump_To_Application();


В начале основной программы:
Код:
   const Int32U   *flash = (Int32U*)APPLICATION_ADDRESS;
   Int32U          *svt = (Int32U*)0x20000000;

   // copying vector table from ROM to RAM
   NVIC->ICER[0] = 0xFFFFFFFF;
   for (int i = 0; i < 48; i++)
   {
      svt[i] = flash[i];
   }

   // remap SRAM to 0x00000000
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
   SYSCFG->CFGR1 |= 0x00000003;

Re: Мелкие вопросы по МК и ПЛИС.

Ср фев 21, 2018 15:07:02

Круто. Спасибо!!!

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 10:29:21

Здравствуйте!

Мне необходимо подключить микроконтроллер STM32F103C8T6 к пору RS-232 компьютера.
Для этого использую микросхему MAX3232. При этом у нее остаются висеть в воздухе 2 входные ножки (в моем случае это 11 и 13).
Обычно в цифровых микросхемах неиспользуемые входа подсоединяют через резистор на плюс питания. По документации на микросхему MAX3232 вывод 13 внутри корпуса подключен через резистор к GND (мультиметром прозвонил действительно так - сопротивление резистора 5 кОм). А вывод 11 висит в воздухе.

Изображение

По документации на микросхемы MAX232 (это у которых питание 5В) вывод 11 внутри корпуса подключен к +5В через резистор 400 кОм.

Изображение

И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232? (к земле через резистор какого номинала, или может через резистор на +3,3В, а может оставить висеть в воздухе?).

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 10:54:23

Dentorol писал(а):И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232?
Выв.13 оставить в воздухе (он уже внутри подтянут), а выв.11 на любую шину питания, или соединить с выв.12.
Последний раз редактировалось korob Пт мар 09, 2018 11:46:49, всего редактировалось 2 раз(а).

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 11:16:53

Спасибо за ответ!
а выв.11 на любую шину питания

Подсоединить напрямую? Или через резистор? Резистор какого номинала?

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 11:23:24

Напрямую. :) Про "соединить с выв.12" это я поспешил. :facepalm: :oops:
Последний раз редактировалось korob Пт мар 09, 2018 11:46:24, всего редактировалось 1 раз.

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 11:34:51

Но что-то я не решусь подключить 11 вывод напрямую к +3,3 В.
Наверное подключу к +3,3 В через резистор. Осталось только узнать номинал этого резистора?

Re: Мелкие вопросы по МК и ПЛИС.

Пт мар 09, 2018 11:45:46

Dentorol писал(а):Наверное подключу к +3,3 В через резистор.
Ваше право. Всё таки я сначала был прав, и я соединил бы с выв.12.
Ответить