1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
1 | |
Обсуждение ARM и Cortex25.01.2016, 23:51. Показов 1717. Ответов 18
Метки нет (Все метки)
Пояснение было для того что бы люди поняли как работает компилятор. Хотите поговорить о скорости современных МК? Кстати, а не подскажите, если в суперсовременном STM32F7 выставить 20 мГц и сравнивать скорость переключения, допустим пинов порта, с AVRкой 20 мГц(овой) кто победит по быстродействию?
можно, но ненужно. Привыкать нужно к одному стилю, потому что "жизнь" кода не заканчивается на сдачи в производство.
0
|
25.01.2016, 23:51 | |
Ответы с готовыми решениями:
18
Сравнение "Qualcomm MSM8909 Snapdragon 210 ARM Cortex A7" и MT6737H Cortex-A53" Микроконтроллеры с ядром ARM Cortex-M4 Вопрос по OMAP3530(ARM Cortex - A8) Изучение ARM на примере Cortex-M4 Инструкция DSP в ARM Cortex M4 |
-16 / 14 / 3
Регистрация: 22.01.2013
Сообщений: 154
|
|
26.01.2016, 00:16 | 2 |
Для этого, наверное, в STM32 частота работы намного выше( не знаю, не работал с ними).
Не буду утверждать окончательно, но запись в бинарном коде( в исходниках) должна облегчать работу компилятора.
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
26.01.2016, 08:47 [ТС] | 3 |
В стандарте СИ НЕТ бинарного представления числа! А та поделка который Вы пользуетесь очень сильно нарушает стандарт и не только с представлениями числа и стала популярна из-за своего визарта. Согласен, удобного, но для начинающего он несёт зло, с ним ни кто не читает документацию, на простом МК вы не получаете опыта пользоваться ей.
так зачем тогда писать чушь. в ножкодерганье управляя в ARM(е) пином через регистр GPIOx_ODR победит AVR, при одинаковой тактовой ядра, упс
1
|
Dostik
|
26.01.2016, 12:07
#4
|
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
26.01.2016, 12:42 [ТС] | 5 |
Правда в ARM(ах)(не во всех) есть еще "Bit Banding", там ситуация "веселей" (АРМ не отстанет ), есть и свой таракан в этом способе, через Bit Banding одновременно можно менять только один бит.
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
26.01.2016, 13:57 | 7 |
с пол-пинка непонятно. запись/чтение в регистры осуществляется командой, которая занимает 2 такта. Так что даже если НЕ делать read-modify-write (что и позволяет BRR/BSRR), то сама запись выполняется не 1 а два такта. То есть для "одной ноги" по идее AVR действительно будет в 2 раза быстрее.
ЗЫ: Витальич, вы тестировали то, о чем говорите насчет ARM vs AVR? на AVR запись действительно выполняется за один такт, это я собственноручно тестировал. А вот с кортексами и армами никогда не задавался такой задачей - просто не было прецедента.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
26.01.2016, 15:31 | 8 | |||||
имется ввиду что эта команда не прервется каким нибудь прерыванием
в отличии от
система ARM как раз и характерна тремя тактами чтение-дешифровка-исполнение здесь получается уже 4? как себя конвейер поведет?
0
|
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
26.01.2016, 16:17 | 9 |
смотрел вот здесь.
Не по теме: по поводу ATOMIC вопросов конечно не было ). Я неправильно уточнил вопрос - надо было просто сказать, что подсчет тактов записи описан в кортексах не предельно просто, поэтому, я сразу не разобрался. Для записи есть еще команды STR, которые куда-то могу писать, но для них написано, что они выполняются за 2 такта.
1
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
26.01.2016, 16:18 [ТС] | 10 |
таки это и есть Bit Banding
смотрим картинку ниже.
Да. Это моё второе крупное разочарования в жизни. (Первое, когда в тридцать лет жена сказала, что дед Мороз не настоящий).
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
26.01.2016, 16:45 | 11 |
тогда как понимать
Добавлено через 10 минут
имеешь ввиду Добавлено через 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 |
попробую уточнить, но вообще чудес на свете не бывает, сами понимаете. Я так понял, что при указании нескольких команд подряд (LDR) копирование с pipeline поможет выполнить эти операции быстро (то есть каждое последующее копирование за 1 такт). Это значит что первое копирование - за 2 такта, а последующие (от той же команды) - по одному. То есть 2 идущие подряд команды типа LDR Rn, Rd займут три такта на обработку.
PS: чуть позже гляну как это делает компилятор, он наверняка должен группировать команды для ускоренного выполнения.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
26.01.2016, 21:22 | 14 | |||||
Voland_, ну и я тоже гляну, завтра-послезавтра
вот такой примерно код
Добавлено через 9 минут чудес не бывает, но бывает распараллеливание иначе как объяснить 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 |
да, я тоже так глубоко не вникал, хотя и интересно, почему "1.25", то есть вообще, больше единицы.
А что касается испытания, то в доке ж не сказано, что адрес для записи должен быть тот же? Я так понимаю, идея конвеера в данном случае заключается в том, что opcode самой команды остается в обработчике, то есть его не надо менять и настраивать в конвеере - он уже "загружен". Меняются только реципиенты и источники, и по-видимому, для кортекса это только отдельная опция, которую он с легкостью может сменить " на лету ".
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
26.01.2016, 23:22 | 16 |
Э нет
ARM как раз и устроен так что у него в 32 битах(Tumb в 16) и команда и источник и адрес RISC подход инструкция одно слово, в отличии от CISC где инструкция имеет разный размер у меня есть подозрение что конвеер считывает 32 битах, а tumb2 16 битные команды, т.е за раз считывает две инструкции и может две и декодирует
2
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
27.01.2016, 11:02 [ТС] | 17 |
https://chess.eecs.berkeley.ed... M3_TRM.pdf разделы 14.3 14.4 14.5
Явно читал, что при встрече команды ветвления происходит извлечения двух команд доступных к продолжению. При косвенном переходе сброс конвейера. А вот при линейном исполнении про такое не читал, либо упустил.
2
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
27.01.2016, 15:18 [ТС] | 18 |
Кто то готов снять осциллограммы нога дрыга с AVR на 16 мГц.
В свою очередь смогу вечером опубликовать нога дрыг с F4 с вот такой конфигурацией шин и ядра. Если есть предложение по конфигурации предлагайте переделаю.
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 | |
27.01.2016, 19:44 | |
Помогаю со студенческими работами здесь
19
Подключение кнопки к LPC1768 ARM Cortex-M3 Масштабирование функции на ARM CORTEX-M4 STM32F407ZG Atsamd21j17a (ARM Cortex-M0+) прочитать прошивку ARM Cortex-M3 + Xilinx Spartan-6 FPGA Симулятор микропроцессора SAMA5D3 на базе ARM Cortex-A5 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |