Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
1

Обсуждение ARM и Cortex

25.01.2016, 23:51. Показов 1715. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цитата Сообщение от gavrasio Посмотреть сообщение
не стоит беспокоиться сколько там сдвигов и тактов МК используется.
Пояснение было для того что бы люди поняли как работает компилятор. Хотите поговорить о скорости современных МК? Кстати, а не подскажите, если в суперсовременном STM32F7 выставить 20 мГц и сравнивать скорость переключения, допустим пинов порта, с AVRкой 20 мГц(овой) кто победит по быстродействию?
Цитата Сообщение от gavrasio Посмотреть сообщение
И можно писать в перемежку
можно, но ненужно. Привыкать нужно к одному стилю, потому что "жизнь" кода не заканчивается на сдачи в производство.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 23:51
Ответы с готовыми решениями:

Сравнение "Qualcomm MSM8909 Snapdragon 210 ARM Cortex A7" и MT6737H Cortex-A53"
Сравниваю Сравнение "Qualcomm MSM8909 Snapdragon 210 ARM Cortex A7" и "MT6737H Cortex-A53" и не...

Микроконтроллеры с ядром ARM Cortex-M4
Здравствуйте, никак не могу найти подробного описания архитектуры и основных периферийных устройств...

Вопрос по OMAP3530(ARM Cortex - A8)
в руки попала Devkit8000 на борту которого OMAP3530. Так на борту стоит Linux под который я и пишу...

Изучение ARM на примере Cortex-M4
Здравствуйте,у меня избитый вопрос... "С чего начать изучение ARM?" Есть знания C++, C#, основы...

Инструкция DSP в ARM Cortex M4
Здравствуйте товарищи. У меня такой вопрос: Если я правильно понимаю инструкция DSP реализована в...

18
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
26.01.2016, 00:16 2
Цитата Сообщение от Витальич Посмотреть сообщение
Кстати, а не подскажите, если в суперсовременном STM32F7 выставить 20 мГц и сравнивать скорость переключения, допустим пинов порта, с AVRкой 20 мГц(овой) кто победит по быстродействию?
Для этого, наверное, в STM32 частота работы намного выше( не знаю, не работал с ними).
Цитата Сообщение от Витальич Посмотреть сообщение
Привыкать нужно к одному стилю, потому что "жизнь" кода не заканчивается на сдачи в производство.
Не буду утверждать окончательно, но запись в бинарном коде( в исходниках) должна облегчать работу компилятора.
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
26.01.2016, 08:47  [ТС] 3
Цитата Сообщение от gavrasio Посмотреть сообщение
но запись в бинарном коде( в исходниках) должна облегчать работу компилятора.
В стандарте СИ НЕТ бинарного представления числа! А та поделка который Вы пользуетесь очень сильно нарушает стандарт и не только с представлениями числа и стала популярна из-за своего визарта. Согласен, удобного, но для начинающего он несёт зло, с ним ни кто не читает документацию, на простом МК вы не получаете опыта пользоваться ей.
Цитата Сообщение от gavrasio Посмотреть сообщение
Для этого, наверное, в STM32 частота работы намного выше( не знаю, не работал с ними).
так зачем тогда писать чушь.
Цитата Сообщение от gavrasio Посмотреть сообщение
Если мы говорим о современных контроллерах( ну, может быть, не тиньки), то, наверное, не стоит беспокоиться сколько там сдвигов и тактов МК используется
Цитата Сообщение от Витальич Посмотреть сообщение
кто победит по быстродействию?
в ножкодерганье управляя в ARM(е) пином через регистр GPIOx_ODR победит AVR, при одинаковой тактовой ядра, упс
1
Dostik
26.01.2016, 12:07
  #4

Не по теме:

Цитата Сообщение от Витальич Посмотреть сообщение
победит AVR, при одинаковой тактовой ядра, упс
:D разочаровали ответчика :D

0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
26.01.2016, 12:42  [ТС] 5
Правда в ARM(ах)(не во всех) есть еще "Bit Banding", там ситуация "веселей" (АРМ не отстанет ), есть и свой таракан в этом способе, через Bit Banding одновременно можно менять только один бит.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
26.01.2016, 13:18 6
Цитата Сообщение от Витальич Посмотреть сообщение
Правда в ARM(ах)(не во всех) есть еще "Bit Banding", там ситуация "веселей"
а ищо есть регистры установки/ сброса BRR BSRR
атомарное обращение скорость сравнима с АВРкой
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
26.01.2016, 13:57 7
Цитата Сообщение от ValeryS Посмотреть сообщение
атомарное обращение скорость сравнима с АВРкой
с пол-пинка непонятно. запись/чтение в регистры осуществляется командой, которая занимает 2 такта. Так что даже если НЕ делать read-modify-write (что и позволяет BRR/BSRR), то сама запись выполняется не 1 а два такта. То есть для "одной ноги" по идее AVR действительно будет в 2 раза быстрее.

ЗЫ: Витальич, вы тестировали то, о чем говорите насчет ARM vs AVR? на AVR запись действительно выполняется за один такт, это я собственноручно тестировал. А вот с кортексами и армами никогда не задавался такой задачей - просто не было прецедента.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
26.01.2016, 15:31 8
Цитата Сообщение от Voland_ Посмотреть сообщение
с пол-пинка непонятно.
имется ввиду что эта команда не прервется каким нибудь прерыванием
в отличии от
C++
1
PORT->ODR^=PIN;
Цитата Сообщение от Voland_ Посмотреть сообщение
запись/чтение в регистры осуществляется командой, которая занимает 2 такта.
можно ссылку на растактовку?
система ARM как раз и характерна тремя тактами чтение-дешифровка-исполнение
здесь получается уже 4? как себя конвейер поведет?
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
26.01.2016, 16:17 9
Цитата Сообщение от ValeryS Посмотреть сообщение
можно ссылку на растактовку?
смотрел вот здесь.
Цитата Сообщение от ValeryS Посмотреть сообщение
имется ввиду что эта команда не прервется каким нибудь прерыванием

Не по теме:

по поводу ATOMIC вопросов конечно не было ). Я неправильно уточнил вопрос - надо было просто сказать, что подсчет тактов записи описан в кортексах не предельно просто, поэтому, я сразу не разобрался. Для записи есть еще команды STR, которые куда-то могу писать, но для них написано, что они выполняются за 2 такта.

1
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
26.01.2016, 16:18  [ТС] 10
Цитата Сообщение от ValeryS Посмотреть сообщение
а ищо есть регистры установки/ сброса BRR BSRR
таки это и есть Bit Banding
Цитата Сообщение от ValeryS Посмотреть сообщение
атомарное обращение скорость сравнима с АВРкой
смотрим картинку ниже.
Цитата Сообщение от Voland_ Посмотреть сообщение
вы тестировали то, о чем говорите насчет ARM vs AVR?
Да. Это моё второе крупное разочарования в жизни. (Первое, когда в тридцать лет жена сказала, что дед Мороз не настоящий).
Миниатюры
Обсуждение ARM и Cortex  
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
26.01.2016, 16:45 11
Цитата Сообщение от Витальич Посмотреть сообщение
таки это и есть Bit Banding
тогда как понимать
Цитата Сообщение от Витальич Посмотреть сообщение
через Bit Banding одновременно можно менять только один бит.
Добавлено через 10 минут
Цитата Сообщение от Voland_ Посмотреть сообщение
смотрел вот здесь.
имеешь ввиду
Load Word LDR Rd, [Rn, <op2>] 2[c]
там есть ссылка
[c] Neighboring load and store single instructions can pipeline their address and data phases. This enables these instructions to complete in a single execution cycle.
если я правильно понял то она сливается и в результате получается один такт

Добавлено через 3 минуты
в общем исследовать надо пока такой задачи не стояло
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
26.01.2016, 16:52  [ТС] 12
Извиняюсь, ошибся. Да это разные методы. Но разворачиваются компилятором в один и тот же код, ну адреса разные, регистра и области Bit Banding.
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
26.01.2016, 19:44 13
Цитата Сообщение от ValeryS Посмотреть сообщение
если я правильно понял то она сливается и в результате получается один такт
попробую уточнить, но вообще чудес на свете не бывает, сами понимаете. Я так понял, что при указании нескольких команд подряд (LDR) копирование с pipeline поможет выполнить эти операции быстро (то есть каждое последующее копирование за 1 такт). Это значит что первое копирование - за 2 такта, а последующие (от той же команды) - по одному. То есть 2 идущие подряд команды типа LDR Rn, Rd займут три такта на обработку.

PS: чуть позже гляну как это делает компилятор, он наверняка должен группировать команды для ускоренного выполнения.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
26.01.2016, 21:22 14
Voland_, ну и я тоже гляну, завтра-послезавтра
вот такой примерно код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
while(1)
{
GPIOC->BRR=GPIO_Pin_0;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_1;
GPIOC->BSRR=GPIO_Pin_0;
}
ну и на ноге взглянуть осциллографом, сколько тактов, и в какие команды разворачивает

Добавлено через 9 минут
Цитата Сообщение от Voland_ Посмотреть сообщение
чудес на свете не бывает,
чудес не бывает, но бывает распараллеливание
иначе как объяснить 1.25DMIPS/МГц.
взято отсюда http://mcucpu.ru/index.php/uco... tex-m0m3m4
1
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
26.01.2016, 22:36 15
Цитата Сообщение от ValeryS Посмотреть сообщение
чудес не бывает, но бывает распараллеливание
иначе как объяснить 1.25DMIPS/МГц.
да, я тоже так глубоко не вникал, хотя и интересно, почему "1.25", то есть вообще, больше единицы.
А что касается испытания, то в доке ж не сказано, что адрес для записи должен быть тот же? Я так понимаю, идея конвеера в данном случае заключается в том, что opcode самой команды остается в обработчике, то есть его не надо менять и настраивать в конвеере - он уже "загружен". Меняются только реципиенты и источники, и по-видимому, для кортекса это только отдельная опция, которую он с легкостью может сменить " на лету ".
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
26.01.2016, 23:22 16
Цитата Сообщение от Voland_ Посмотреть сообщение
то есть его не надо менять и настраивать в конвеере - он уже "загружен". Меняются только реципиенты и источники,
Э нет
ARM как раз и устроен так что у него в 32 битах(Tumb в 16) и команда и источник и адрес
RISC подход инструкция одно слово, в отличии от CISC где инструкция имеет разный размер
у меня есть подозрение что конвеер считывает 32 битах, а tumb2 16 битные команды, т.е за раз считывает две инструкции и может две и декодирует
2
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.01.2016, 11:02  [ТС] 17
Цитата Сообщение от ValeryS Посмотреть сообщение
т.е за раз считывает две инструкции
https://chess.eecs.berkeley.ed... M3_TRM.pdf разделы 14.3 14.4 14.5
Цитата Сообщение от ValeryS Посмотреть сообщение
т.е за раз считывает две инструкции и может две и декодирует
Явно читал, что при встрече команды ветвления происходит извлечения двух команд доступных к продолжению. При косвенном переходе сброс конвейера. А вот при линейном исполнении про такое не читал, либо упустил.
2
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
27.01.2016, 15:18  [ТС] 18
Кто то готов снять осциллограммы нога дрыга с AVR на 16 мГц.
В свою очередь смогу вечером опубликовать нога дрыг с F4 с вот такой конфигурацией шин и ядра. Если есть предложение по конфигурации предлагайте переделаю.
Миниатюры
Обсуждение ARM и Cortex  
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
27.01.2016, 19:44 19
по клоку ж не важно как будет. Главное запустить прогу или из RAM, или использовать низкую частоту PLL, чтобы можно было выставить WaitState=0. Иначе программа будет тормозить из-за доп.тактов для вычитки команд из FLASH.

Добавлено через 1 минуту
PS: 16MHz кажись, без WaitState'ов
0
27.01.2016, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2016, 19:44
Помогаю со студенческими работами здесь

Подключение кнопки к LPC1768 ARM Cortex-M3
Есть плата с подключенным к нему дип переключателем при включении сажает пин на землю. Есть...

Масштабирование функции на ARM CORTEX-M4 STM32F407ZG
Обращаюсь к сообществу за помощью в лабораторной работе. В приложении код программы, в котором...

Atsamd21j17a (ARM Cortex-M0+) прочитать прошивку
Подскажите, подскажите как и чем можно по побывать прочитать прошивку с микроконтроллера...

ARM Cortex-M3 + Xilinx Spartan-6 FPGA
Уважаемые, подскажите, пожалуйста, где можно промоделировать работу устройства на базе указанных...

Симулятор микропроцессора SAMA5D3 на базе ARM Cortex-A5
Всем доброго здравия! Недавно столкнулся с микроконтроллером SAMA5D3, и мне нужно научиться под...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru