Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Novi4ekC
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
1

STM, Cortex сравнение

11.10.2016, 03:11. Просмотров 2143. Ответов 20
Метки нет (Все метки)

Цитата Сообщение от Voland_ Посмотреть сообщение
И да, определитесь о каком семействе STM32 идет речь. Потому что кортексы хоть и имеют общее название- Cortex, содержат существенные отличия друг от друга.
stm32 кортексы совместимы с предыдущими семействами, никаких отличий нету, только существенный апгрейд
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2016, 03:11
Ответы с готовыми решениями:

Совместимость кода Cortex-M3 и Cortex-M4
Доброго времени суток. Встала необходимость освоить STM32, была закуплена...

STM Studio
Шастаю сейчас по www.st.com, наткнулся на программу STM Studyo. Как я понял она...

stm+vs1011e
Кто-то подключал vs1011e к STM? Или хотя бы к АВР) если можно, залейте...

Nokia5110 и stm
Появился у меня дисплей от nokyo5110, все культурно сделано на плате, но как с...

STM Studio & STM32F3
Проблема в следующем, при запуске Run-> Start выдает ошибку "SWIM error /:...

20
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
11.10.2016, 08:10 2
Цитата Сообщение от Novi4ekC Посмотреть сообщение
stm32 кортексы совместимы с предыдущими семействами,
что есть "предыдущие семейства"?
при чем здесь STM32?
M3, M4, M7 рям таки никаких отличий?
0
Novi4ekC
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
11.10.2016, 17:36  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
что есть "предыдущие семейства"?
при чем здесь STM32?
M3, M4, M7 рям таки никаких отличий?
м7 совместим с м4, м4 с м3 и т.д., в чем проблема?

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
что есть "предыдущие семейства"?
Если я скажу с предыдущими версиями ядер, так будет понятней?
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
11.10.2016, 17:51 4
https://habrahabr.ru/company/efo/blog/277491/
0
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
11.10.2016, 18:28 5
Цитата Сообщение от Novi4ekC Посмотреть сообщение
м7 совместим с м4, м4 с м3 и т.д., в чем проблема?
в том что м3 не совместим с м7
пентиум тоже совместим в 8086, но на этом основании никто не говорит
Цитата Сообщение от Novi4ekC Посмотреть сообщение
никаких отличий нету, только существенный апгрейд
и как насчет Cortex-A7 и Cortex-M7 тоже совместимы?
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
11.10.2016, 18:37 6
Цитата Сообщение от ValeryS Посмотреть сообщение
в том что м3 не совместим с м7
так вроде
Цитата Сообщение от Novi4ekC Посмотреть сообщение
stm32 кортексы совместимы с предыдущими семействами
Цитата Сообщение от ValeryS Посмотреть сообщение
и как насчет Cortex-A7 и Cortex-M7 тоже совместимы?
Cortex-A7 - процессорное ядро
0
shepard127
6 / 6 / 0
Регистрация: 20.10.2013
Сообщений: 57
11.10.2016, 21:48 7
Что-то я не пойму суть спора
Также не пойму что вы хотите доказать. И что в вашем понятии означает слово - 'совместимы'?

И что в вашем понятии означает слово - 'совместимы'?
- это пожалуй самое не понятное:\
0
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
11.10.2016, 22:52 8
Цитата Сообщение от Витальич Посмотреть сообщение
Cortex-A7 - процессорное ядро
ну изначально звучало
Цитата Сообщение от Novi4ekC Посмотреть сообщение
кортексы совместимы с предыдущими семействами,
не уточнялось M, A или R
но даже M ядро с минимум обвязки, вся периферия отдана на откуп производителю
Витальич, сам подумай, если бы СТМовские кортексы были совместимы снизу вверх, как интеловские камни, зачем бы они HAL вводили? написал для 103го скопилировал для 407го, вот тебе и "щастье"
ладно это лирика, самое главное в микроконтроллере это выводы, GPIO, без них он с внешним миром общаться не может
вот конкретные листиги, три камня Coptex-M0(stm32f030c6) Cortex-M3(stm32f103VE) и Cortex-M4(stm32f407ve)
структуры GPIO
stm32f0xx.h(stm32f030c6 ARM 32-bit Cortex-M0 CP (48 MHz max))
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
typedef struct
{
  __IO uint32_t MODER;        /*!< GPIO port mode register,                                  Address offset: 0x00 */
  __IO uint16_t OTYPER;       /*!< GPIO port output type register,                           Address offset: 0x04 */
  uint16_t RESERVED0;         /*!< Reserved,                                                                 0x06 */
  __IO uint32_t OSPEEDR;      /*!< GPIO port output speed register,                          Address offset: 0x08 */
  __IO uint32_t PUPDR;        /*!< GPIO port pull-up/pull-down register,                     Address offset: 0x0C */
  __IO uint16_t IDR;          /*!< GPIO port input data register,                            Address offset: 0x10 */
  uint16_t RESERVED1;         /*!< Reserved,                                                                 0x12 */
  __IO uint16_t ODR;          /*!< GPIO port output data register,                           Address offset: 0x14 */
  uint16_t RESERVED2;         /*!< Reserved,                                                                 0x16 */
  __IO uint32_t BSRR;         /*!< GPIO port bit set/reset registerBSRR,                     Address offset: 0x18 */
  __IO uint32_t LCKR;         /*!< GPIO port configuration lock register,                    Address offset: 0x1C */
  __IO uint32_t AFR[2];       /*!< GPIO alternate function low register,                Address offset: 0x20-0x24 */
  __IO uint16_t BRR;          /*!< GPIO bit reset register,                                  Address offset: 0x28 */
  uint16_t RESERVED3;         /*!< Reserved,                                                                 0x2A */
}GPIO_TypeDef;

stm32f10x.h (stm32f103VE ARM 32-bit Cortex-M3 Microcontroller)
C
1
2
3
4
5
6
7
8
9
10
typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;
stm32f4xx.h (stm32f407ve - ARM 32-bit Cortex-M4 CPU with FPU)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef struct
{
  __IO uint32_t MODER;    /*!< GPIO port mode register,               Address offset: 0x00      */
  __IO uint32_t OTYPER;   /*!< GPIO port output type register,        Address offset: 0x04      */
  __IO uint32_t OSPEEDR;  /*!< GPIO port output speed register,       Address offset: 0x08      */
  __IO uint32_t PUPDR;    /*!< GPIO port pull-up/pull-down register,  Address offset: 0x0C      */
  __IO uint32_t IDR;      /*!< GPIO port input data register,         Address offset: 0x10      */
  __IO uint32_t ODR;      /*!< GPIO port output data register,        Address offset: 0x14      */
  __IO uint16_t BSRRL;    /*!< GPIO port bit set/reset low register,  Address offset: 0x18      */
  __IO uint16_t BSRRH;    /*!< GPIO port bit set/reset high register, Address offset: 0x1A      */
  __IO uint32_t LCKR;     /*!< GPIO port configuration lock register, Address offset: 0x1C      */
  __IO uint32_t AFR[2];   /*!< GPIO alternate function registers,     Address offset: 0x20-0x24 */
} GPIO_TypeDef;
где совместимость? хоть сверху вниз, хоть снизу вверх?
2
Novi4ekC
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
11.10.2016, 23:36  [ТС] 9
ValeryS, да, вот здесь я не учел. в m-3 изменили немного состав регистров для GPIO, но потом вернули обратно, это уже не специально вышло, как мне кажется. я может чего то не знаю, может ветка после m-3 как то отдельно развивается? я просто пробовал m0 и m7, в m3 заглядывал тоже, удивили такие приколы

Добавлено через 7 минут
ValeryS, но по совместимости я, конечно, подразумевал систему команд.

Добавлено через 1 минуту
да и gpio это как бы периферия, а не ядро, если я не ошибаюсь
0
shepard127
6 / 6 / 0
Регистрация: 20.10.2013
Сообщений: 57
12.10.2016, 00:01 10
Novi4ekC,
Цитата Сообщение от Novi4ekC Посмотреть сообщение
да и gpio это как бы периферия, а не ядро, если я не ошибаюсь
не ошибаетесь.

Теперь я немного понял из-за чего весь "сыр-бор".
Приведу пример: недавно пришлось перенести проект с F100 на F373xC, так я вам скажу. Пришлось перехреначивать половину проекта, и это еще учитавая тот факт что я не юзал STL'ые библиотеки.
Если бы вы столкнулись с этим, я думаю вы бы почувствовали разницу
3
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
12.10.2016, 00:38 11
Цитата Сообщение от Novi4ekC Посмотреть сообщение
но по совместимости я, конечно, подразумевал систему команд.
где это сказано?
Цитата Сообщение от Novi4ekC Посмотреть сообщение
stm32 кортексы совместимы с предыдущими семействами, никаких отличий нету,
и еще по некоторым данным, сейчас не могу не подтвердить не опровергнуть, M4 поддерживает THUMB и THUMB2 а М3 только THUMB2 а М7 уже дозволяет распараллеливание
Цитата Сообщение от Novi4ekC Посмотреть сообщение
да и gpio это как бы периферия, а не ядро, если я не ошибаюсь
Формально да
но практически это одна из самых важных вещей в микроконтроллере
насчет ядер, вот краткий обзор кортексов http://robocraft.ru/blog/ARM/644.html

Добавлено через 8 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
вот краткий обзор кортексов
обшибся я
вот ссылка
https://habrahabr.ru/company/efo/blog/277491/
кстати shepard127, по поводу документации цитата из первой ссылки
Во-вторых, у STM32 очень хорошая структурированная документация:
Один Reference manual с описанием всей периферии на всю линейку STM32F10x
Подробная документация по каждой отдельной серии МК — распиновка, корпуса, наименование и т.п.
Приличное количество аппноутов (Application Notes) — рекомендаций по применению: правильный подбор источника тактирования, питания, примеры работы с LCD, SD-картами, RTC и многое другое.
мое мнение не такая она уж и хорошая, пока нужный документ найдешь, семь потов сойдет
1
Voland_
1688 / 1033 / 97
Регистрация: 04.01.2010
Сообщений: 3,482
12.10.2016, 09:40 12
...я даже не стал участвовать в дискуссии, т.к. не знал с чего начать . Когда мы говорим о "кортексах" на уровне абстракции сравнения ядер - то да, кортексы своей линейки совместимы с предыдущими версиями (на уровне ЦПУ). Но говоря об МК, на ядре кортексов периферия собрана совершенно по-разному, и даже в одной линейке (например, STM32F103RB vs STM32F103RC, STM32F103 vs STM32F105/107 и др. соотношения), определенная периферия (USB, CAN, интерфейсы памяти, таймеры) вставлены совершенно разные, будем говорить - это вообще разные модули.
Это не линейка AVR, в которой TIM1 - один и тот же, во всех AVR, которые я только знаю. Поэтому, посыл в виде "кортексы имеют backward compatibility" я просто пропустил мимо ушей, т.к. он не несет какой-то конкретной информации. Это все равно что сказать: "все машины ездят по дороге".

Добавлено через 6 минут
Цитата Сообщение от shepard127 Посмотреть сообщение
Пришлось перехреначивать половину проекта, и это еще учитавая тот факт что я не юзал STL'ые библиотеки.
Очень зря. Так бы пришлось перехренячивать гораздо меньше. Но в целом согласен - особенно это касается более сложных модулей, по сравнению с GPIO.
3
Grey
Тутошний я
1698 / 864 / 153
Регистрация: 03.11.2009
Сообщений: 2,628
Записей в блоге: 1
13.10.2016, 00:02 13
Цитата Сообщение от ValeryS Посмотреть сообщение
где это сказано?
да вот в книжке написано, что windows8 разрабатывалась для работы не только на Intel и AMD но и на ARM.
видимо у них коды совместимые
Магда Ю.С. Программирование и отладка C/C++ приложений для микроконтроллеров ARM
0
shepard127
6 / 6 / 0
Регистрация: 20.10.2013
Сообщений: 57
13.10.2016, 01:33 14
Voland_,
Цитата Сообщение от Voland_ Посмотреть сообщение
Очень зря. Так бы пришлось перехренячивать гораздо меньше.
ну как сказать, как потом выяснилось отличия были даже в либах... К примеру вместо просто и понятного L, H(low, hight), они почему-то написали(00, 01). И фиг поймешь, пока в дебаге не посмотришь.

P.S.
Сейчас пытаюсь перейти на HAL. Очень с трудом получается
Вот не вижу что там происходит, и это вызывает у меня недоверие... Не знаю, может я просто слишком придираюсь, но все же. Хотя согласен - да на HAL'е можно очень быстро сообразить фундамент проекта за день, два. А раньше на это уходило неделя или две.
0
Voland_
1688 / 1033 / 97
Регистрация: 04.01.2010
Сообщений: 3,482
13.10.2016, 09:37 15
Цитата Сообщение от shepard127 Посмотреть сообщение
К примеру вместо просто и понятного L, H(low, hight), они почему-то написали(00, 01). И фиг поймешь, пока в дебаге не посмотришь.
это вообще малопонятно. Потому что "00" и "01" - октальные константы, и в общем случае к Low и High имеют лишь приблизительное отношение. Не может быть, чтобы вот это запросто могли поменять - тому должна быть какая-то причина.
0
Novi4ekC
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
13.10.2016, 17:52  [ТС] 16
Цитата Сообщение от Grey Посмотреть сообщение
да вот в книжке написано, что windows8 разрабатывалась для работы не только на Intel и AMD но и на ARM.
видимо у них коды совместимые
Магда Ю.С. Программирование и отладка C/C++ приложений для микроконтроллеров ARM
В смысле "коды совместимые"? на языке высокого левела, конечно совместимые, но не для драйверов само собой. Я ничего не знаю про спектр всем ARM-ов, но точно "коды не совместимые" у х86 и кортексов
0
Rius
Эксперт .NET
5282 / 3475 / 841
Регистрация: 25.05.2015
Сообщений: 10,599
Записей в блоге: 11
Завершенные тесты: 4
13.10.2016, 18:36 17
Цитата Сообщение от Grey Посмотреть сообщение
windows8 разрабатывалась для работы не только на Intel и AMD но и на ARM.
видимо у них коды совместимые
Если написать исходники, заранее это предусмотрев, то можно пересобрать программы под разные платформы. Посмотрите на софт в линуксах.
ПО же для винды может быть написано на вариациях .Net или HTML5+JS, обеспечивая "кроссплатформенность" в понимании MS.
1
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
13.10.2016, 18:39 18
Цитата Сообщение от Grey Посмотреть сообщение
видимо у них коды совместимые
Сдается мне, это был сарказм
0
Grey
Тутошний я
1698 / 864 / 153
Регистрация: 03.11.2009
Сообщений: 2,628
Записей в блоге: 1
13.10.2016, 20:40 19
Цитата Сообщение от ValeryS Посмотреть сообщение
Сдается мне, это был сарказм
изначально, да
а сейчас уже не знаю.
на дестопах и планшетах используют одну версию винды.
драйверов для ядра не нужно. наборы команд в ядрах разные.
и тем не менее она работает.
0
ValeryS
Модератор
7446 / 5638 / 716
Регистрация: 14.02.2011
Сообщений: 19,206
Завершенные тесты: 1
13.10.2016, 20:44 20
Цитата Сообщение от Grey Посмотреть сообщение
а сейчас уже не знаю.
на дестопах и планшетах используют одну версию винды.
на высоком уровне
компилятор потом переводит в коды нужного камня
как например Qt пишешь программу а портировать можешь на 100500 платформ
1
13.10.2016, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2016, 20:44

Канал STM в RusNet
Всем привет!!! Открыт чат в RUSNET по тематике: STM микроконтроллеры ...

сонограф (анализатор спектра) на stm
есть такая замечательная прога spectraplus, показывающая в реальном времени...

Если симулятор под STM?
есть ли в природе симуляторы под stm, по типу avr в протеусе? так сказать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru