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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Jack-Sidr
Встал на лапы
Сообщения: 91
Зарегистрирован: Сб фев 17, 2018 00:08:56

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

Сообщение Jack-Sidr »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3311819#p3311819"]а в каких случаях нужен бутлодер и что он загружает?[/uquote]

Загружает он прошивку в свободную часть МК, нужен, например для прошивки отличным от Spi интерфейсом (есть бутлоадеры для прошивки через виртуальный USB, Uart и тд). Сам бутлоадер это под программа которая принимает информацию по даному интерфейсу, и записывает её во флеш.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19043
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

понятно. это можно назвать "нестандартные" способы прошивки.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

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

Сообщение alex_ »

Ну почему же не стандартные, вполне стандартные, о чём написано в даташите. Плюс ботлоадера в том что пользователь сам решает через какой интерфейс он хочет обновляться, и помимо этого позволяет переписывать прошивку контроллера постранично, т.е. захотели и переписали например только 3 страницу а не стирая весь кристалл как это обычно происходит при использовании SPI.
Аватара пользователя
AndyBig
Грызет канифоль
Сообщения: 250
Зарегистрирован: Ср янв 17, 2018 13:09:14

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

Сообщение AndyBig »

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

Я бы сказал, что это не подпрограмма, а маленькая полноценная отдельная программа со своими прерываниями и полностью независимая от основной программы.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19043
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

я когда спросил про возможность писать свою программу в область бутлодера, я предполагал, что там уже записаны стандартные загрузчики и их нельзя стирать.
но если пользователь пишет собственный загрузчик для конкретного интерфейса, то стандартным способом это называть нельзя, я так думаю.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

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

Сообщение alex_ »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3312652#p3312652"]я когда спросил про возможность писать свою программу в область бутлодера, я предполагал, что там уже записаны стандартные загрузчики и их нельзя стирать.[/uquote]
Действительно есть и такие, в которых уже заложен загрузчик, например СТМ32 или Мега с аппаратным USB, но стереть его вам никто не помешает.
но если пользователь пишет собственный загрузчик для конкретного интерфейса, то стандартным способом это называть нельзя, я так думаю.

И да и нет: то что в контроллере специально для этого предусмотрено место и возможность стартовать с него то это как стандартное решение(так разработчиком заложено), а то что пользователь туда положит это не стандартное(индивидуальное).
Аватара пользователя
Starichok51
Модератор
Сообщения: 19043
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

все теперь понятно.
но я спрашивал на всякий случай. у меня пока нет таких больших проектов, чтобы занимать область загрузчика.
два самых больших моих проекта занимают примерно 4 кБ - половину программной памяти. до области загрузчика еще далеко...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Вот тут можете посмотреть про бутлоадер
https://hubstub.ru/programming/77-prosh ... ouder.html
https://hubstub.ru/stm32/159-pishim-svo ... stm32.html
Аватара пользователя
Starichok51
Модератор
Сообщения: 19043
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

спасибо. почитал, интересно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
AndyBig
Грызет канифоль
Сообщения: 250
Зарегистрирован: Ср янв 17, 2018 13:09:14

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

Сообщение AndyBig »

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

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

Сообщение Chettuser »

Вопрос по 32F0308Discovery (которая с F030). Погонял на ней пример с таймерами из сниппетсов "в лоб", без переделки. Теперь вопрос - если в нём имеется всё таки TIM2, что же тогда камень из себя представляет по железу?
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

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

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

Код: Выделить всё


 __set_PRIMASK(1);

SCB->VTOR = Application_address;

__set_PRIMASK(0);


Аватара пользователя
AndyBig
Грызет канифоль
Сообщения: 250
Зарегистрирован: Ср янв 17, 2018 13:09:14

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

Сообщение AndyBig »

Угу, это когда есть возможность ремапить саму таблицу :)
В 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;
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

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

Сообщение baghear »

Круто. Спасибо!!!
Аватара пользователя
Dentorol
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Пн июн 21, 2010 19:57:07
Откуда: Россия - родина моя

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

Сообщение Dentorol »

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

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

Изображение

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

Изображение

И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232? (к земле через резистор какого номинала, или может через резистор на +3,3В, а может оставить висеть в воздухе?).
Аватара пользователя
korob
Друг Кота
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

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

Сообщение korob »

Dentorol писал(а):И у меня соответственно вопрос: подскажите, пожалуйста, куда и как подсоединять неиспользуемые входа микросхемы MAX3232?
Выв.13 оставить в воздухе (он уже внутри подтянут), а выв.11 на любую шину питания, или соединить с выв.12.
Последний раз редактировалось korob Пт мар 09, 2018 11:46:49, всего редактировалось 2 раза.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Аватара пользователя
Dentorol
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Пн июн 21, 2010 19:57:07
Откуда: Россия - родина моя

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

Сообщение Dentorol »

Спасибо за ответ!
[uquote="korob",url="/forum/viewtopic.php?p=3326563#p3326563"]а выв.11 на любую шину питания[/uquote]
Подсоединить напрямую? Или через резистор? Резистор какого номинала?
Аватара пользователя
korob
Друг Кота
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

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

Сообщение korob »

Напрямую. :) Про "соединить с выв.12" это я поспешил. :facepalm: :oops:
Последний раз редактировалось korob Пт мар 09, 2018 11:46:24, всего редактировалось 1 раз.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Аватара пользователя
Dentorol
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Пн июн 21, 2010 19:57:07
Откуда: Россия - родина моя

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

Сообщение Dentorol »

Но что-то я не решусь подключить 11 вывод напрямую к +3,3 В.
Наверное подключу к +3,3 В через резистор. Осталось только узнать номинал этого резистора?
Аватара пользователя
korob
Друг Кота
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

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

Сообщение korob »

Dentorol писал(а):Наверное подключу к +3,3 В через резистор.
Ваше право. Всё таки я сначала был прав, и я соединил бы с выв.12.
СпойлерЧто-то после праздника неуверенно соображаю... :))) :))) :))) :facepalm: :facepalm: :facepalm:
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Ответить

Вернуться в «Разные вопросы по МК»