С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/57: Рейтинг темы: голосов - 57, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880

Можно ли прошивку от STM32F103 залить в F100, F102?

16.09.2011, 21:41. Показов 12319. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Паз уж в контроллерах ST Microitistronics всё такое стандартизированное и одинаковое (вплоть до распиновки), возник вопрос, будет ли одна и та же прошивка работать в разных контроллерах? Дефайн STM32F10X_MD_VL кроме как на доступность различной периферии вроде ни на что и не влияет?

Объясню, зачем это надо: планирую сделать 2 версии девайса - одну бюджетную на F100, другую точно такую же но на F103 с распаянным USB для обновления прошивки. А прошивку хочется иметь одну и ту же.

Чтобы прошивка знала, "в каком контроллере она сидит", я сделаю перемычку, которую буду впаивать для F100 и не впаивать для F103. При старте прошивка узнает по наличию перемычки о том, что это за контроллер и соответственно будет или не будет инициализировать USB.

Сработает, как думаете?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.09.2011, 21:41
Ответы с готовыми решениями:

Какую прошивку залить?
Где то год назад приобретали циску 881-k9 с advsecurity лицензией. Но нужны были еще и advipservice. На ней стояла IOS...

Скомпилировать и залить прошивку в PIC
подскажите пожалуйста, я заказазывал программу прошивки, человек мне ее передал и пропал, а я не знаю как ее запустить, файл asm

Залить прошивку под виндой (РЕШЕНО)
Собсно, не имею понятия, что сейчас можно использовать для заливки .ELF в MSP430FR5739 через имеющийся ланчпад ez430. То есть, работаю...

20
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
16.09.2011, 21:56
Скорей всего нет. Еще ведь хеадеры существуют. Также частоты разные. Стартупы сильно отличаются.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
16.09.2011, 22:02
..... разве что сделать участки с условной компиляцией - потроха то у 103 пожирнее и инициализации соответственно больше.
0
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 44
16.09.2011, 22:17
Там два разных дефайна. Для 103- MD, для 100-MD_VL. Работать может и будет, если будет использоваться периферия, которая есть в обоих контроллерах. Лучше две проги написать, там всего то и надо будет названия векторов прерываний подправить, да ЮСБ выпилить. :)
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880
17.09.2011, 00:15
Ну в том и дело то что не хочется сразу 2 проекта держать, пусть даже с одинаковыми кодами. Поэтому и хочу некоторую универсальность сделать.

Частоты почему разные? Пусть 24 МГц везде будет. Разве что... я только что вспомнил, что USB только при 48 МГц работает. Засада.
0
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 134
17.09.2011, 00:41
Есть у меня смутное подозрение, что по "Unique divice ID rikystir" можно определить семейство эстешек.
Соответственно можно его читать, определять в какой проц прошивку залили и в соответствии с этим делать нужную инициализацию.
Но шибко задротский этот способ получается =)

А можно по-человечески задать какой-то дефайн, и через препроцессор собирать нужные куски кода в зависимости от того, какое значение имеет параметр.
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880
17.09.2011, 01:01
Задача - чтоб прошивка была ОДНА.

Так-то да, можно в одном проекте через дефайны всё сделать, написать Makefile для сборки сразу двух версий прошивок. Но всё же хочется иметь ОДНУ прошивку на выходе, подходящую к обеим аппаратным версиям устройства.
0
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
17.09.2011, 01:42
А как ты будешь прерывания инициализировать? Их же там разное количество.
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880
17.09.2011, 01:58
Внутри самой прошивки будет стоять проверка, "в каком контроллере она сидит". Будет это определяться либо аппаратными средствами (перемычка между какими-нибудь пинами), либо как сказал ptumbum можно поискать программные средства, например по unique ID. Далее прошивка сама уже будет инициализировать всё что нужно в соответствии с контроллером, в котором она находится.
0
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
17.09.2011, 02:04
Твоя прошивка за надобностью сможет написать обработчики прерывания?? В любом случае они должны быть объявлены стартапе. Или он тоже будет динамически меняться??
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880
17.09.2011, 02:33
Цитата Сообщение от o9d
Твоя прошивка за надобностью сможет написать обработчики прерывания?? В любом случае они должны быть объявлены стартапе. Или он тоже будет динамически меняться??
Обработчики будут написаны для всей периферии, в т.ч. для той, которая отсутствует в контроллере младшей линейки. При несконфигурированном NVIC обработчик несуществующей периферии не будет вызываться, а то, что ссылка на этот обработчик будет висеть в таблице прерываний - ничего страшного, прерывание никогда не возникнет, главное, чтоб таблица векторов прерываний совпадала для всего семейства STM32F. Это я уточню.
0
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
17.09.2011, 02:47
Зайди на сайт stm. У них нет F100 и F103 совпадающих одновременно по размеру оперативки и флешу. А значит два разных конфига для линкера.
0
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 134
17.09.2011, 03:15
o9d, никто не мешает написать линк-скрипт, с учётом меньшего объёма памяти. Или даже не использовать при линковке всю память. А уже в ходе выполнения выяснять реальный объём памяти, и использовать его скажем под кучу.
0
0 / 0 / 0
Регистрация: 27.05.2010
Сообщений: 95
17.09.2011, 10:34
ptumbum, o9d тебе говорит, что таблица векторов прерываний у них разная, а она жестко прописывается во флеше. Хотя можно извратиться с NVIC_SetVectorTable.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
17.09.2011, 12:09
Цитата Сообщение от OTPINE
Задача - чтоб прошивка была ОДНА.
... так в чем проблема?
Code
1
2
3
4
5
6
#ifdef STM32F103
... код для STM32F103
#elif defined(STM32F100)
... код для STM32F100
#endif
... общий код
Цитата Сообщение от ptumbum
...можно по-человечески задать какой-то дефайн, и через препроцессор собирать нужные куски кода в зависимости от того, какое значение имеет параметр.
... или я чего то недопонимаю?
0
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 134
17.09.2011, 13:29
otxmt, так ведь в самомо ядре Sortix-M3 есть регистр, позволяющий таблицу векторов мапить куда угодно.
0
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 134
17.09.2011, 17:34
ShypKyttir, не. Чел хочет что бы был один бинарник на все процы.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
17.09.2011, 21:48
Тогда надо что-то вроде пиколинкуса.
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
18.09.2011, 11:38
Если озаботиться тем что бы вектора прерываний и основной код были в разных секторах флеши то один бинарь на разные контроллеры реален, но только для обновления. Сначало шьете в контроллеры полные прошивки. А при обновлении заменяете сектора с основным кодом, оставляя не тронутой таблицу прерываний. Еще можно собрать 2 бинаря и упаковать их в софт для обновления. Для секъюрности можно и зашифровать. При обновлении софтина нащупывает контроллер, получает инфу о версии и выбирает чего лить.
0
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 598
18.09.2011, 13:13
Цитата Сообщение от _kuordyomomkit
Если озаботиться тем что бы вектора прерываний и основной код были в разных секторах флеши то один бинарь на разные контроллеры реален, но только для обновления. Сначало шьете в контроллеры полные прошивки. А при обновлении заменяете сектора с основным кодом, оставляя не тронутой таблицу прерываний. Еще можно собрать 2 бинаря и упаковать их в софт для обновления. Для секъюрности можно и зашифровать. При обновлении софтина нащупывает контроллер, получает инфу о версии и выбирает чего лить.
имхо это оптимальный вариант. Есть 2 бинарника прошивки, каждый всяко не больше 500кб, шифруем их, сляпываем в один файл + немного служебной информации, типа длина 1го файла, длина 2го файла, версия и т.д., и пишем софтину, которая определяет камень (или пользователь указыавет), и вынимает из большого зашифрованного файла нужный файл прошивки. 2 файла прошивки для разных контроллеров элементарно получаются из одного исходника с использованием условной компиляции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2011, 13:13
Помогаю со студенческими работами здесь

Samsung 3400 f - не могу залить прошивку
Всем доброго времени суток! Ув. спецы помогите пожалуйста реанимировать не могу залить прошивку, может кто сталкивался. Если можно схемку...

как залить заводскую прошивку на роутер
сестре отдали на работе роутер d-link dir 615 только он работает с провайдером дом.ру,можно ли залить на него заводскую прошивку? если...

Не получается в роутер Тенда F3 залить английскую прошивку
Купил роутер на таобао пришел рабочий, но с китайской прошивкой. Текущая версия 11.11.01.13. Сам роутер Прошивки с официального сайта...

Как залить прошивку в ADSP процессор фирмы Analog Devices
Приветствую, Столкнулся со следующей проблемой. Есть одно устройство. В нем есть микросхема цифровой обработки сигналов ADSP-21364. И...

В кофемашину можно засыпать различные сорта кофейных зерен, залить молока и воды, залить различные сиропы
Всем привет. Нужна помощь, запутался. Помогите довести до ума. Что смог написать: import itertools import json from typing import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru