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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

...любая битовая команда превращается в НАБОР команд...
не хуже чем AVR.
Cortex M0:

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

volatile uint32_t Flags;
#define BLINK   0x00000004
   Flags ^= BLINK;

   LDR      r1,[r4,#8]  ; Flags
   MOVS     r2,#4
   EORS     r1,r1,r2
   STR      r1,[r4,#8]  ; Flags
AVR:

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

volatile unsigned char Flags;
#define BLINK   0x04
  Flags ^= BLINK;

  LDI     R16, 4
  LDI     R30, LOW(Flags)
  LDI     R31, (Flags) >> 8
  LD      R17, Z
  EOR     R17, R16
  ST      Z, R17
STM8:

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

        LD        A, L:Flags
        XOR       A, #0x4
        LD        L:Flags, A
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Ващето вывод одного бита при правильно написанном коде компилируется как ОДНА команда...
А в Кортексах не менее трех, да и то при наличии битовой адресации...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

а как "правильно написать" такой код, пример пожалуйста. В PIC16 да:

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

bit BLINK;
  BLINK=~BLINK;

  movlw	(0+1) shl (_BLINK& (0+7))
  xorwf	_BLINK/(0+8),f
а Cortex высокоэффективный 3-ступенчатый конвейер (или 2-х), с предсказанием ветвлений не спасает?
Последний раз редактировалось oleg110592 Сб апр 12, 2014 18:39:20, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Сами и ответили на свой вопрос...
:)
В 10...16-х на выходе будет две команды movlw <#mask> и xorwf <register>
В 18-х и 24-х одна команда btg <register, #bit>

Просто вывод вида а |= 0x01<<3 превращается в bsf a, 3

PS. Обсуждались не преимущества Кортекса, а битовая адресация... :wink:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

КРАМ писал(а):Обсуждались не преимущества Кортекса, а битовая адресация... :wink:
А что там обсуждать??? Уже разобрались...
А по поводу "преимущества Кортекса"... так это очевидно... несмотря на все попытки...
Для примера... реверс битов (разворот) байта...
b = __REV(__RBIT(a));
Во что это выльется в АВР или ПИК???
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

обсуждались не преимущества Кортекса, а битовая адресация...
напугала фраза:
При отсутствии битовых команд и битового расширения адресов любая битовая команда превращается в НАБОР команд. Тогда и заявленная производительность - фикция...
проверил как с этим у других мк - круче в этом только пики. У меня, в моих программках мало работы с битами - кортексы рулят.
Реклама
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

oleg110592 писал(а):круче в этом только пики. У меня, в моих программках мало работы с битами - кортексы рулят.
Да не ведись... Марк троллит по незнанию и в расчёте на незнание...
Инверсия бита самая невостребованная операция... а при групповых операциях кортексы рулят однозначно... Тут примеров можно кидать и кмдать...
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

"Глубокая мысль" в том, что байтный доступ в МК - одно из основных свойств его как УПРАВЛЯЮЩЕГО устройства.
Поэтому и в ПИКах и в АРМах и в АВР создан общий инструмент.
И в АРМах механизм битной адресации дает большое удобство при обработке больших БИТНЫХ массивов.
Последний раз редактировалось КРАМ Сб апр 12, 2014 21:26:51, всего редактировалось 1 раз.
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

:facepalm:
"Вы не любите кошек? Да вы их просто готовить не умеете!"(С)
КРАМ писал(а):Ващето вывод одного бита при правильно написанном коде компилируется как ОДНА команда...
А в Кортексах не менее трех, да и то при наличии битовой адресации...
Чушь!!! От архитектуры Cortex это никак не зависит... у Cortex тоже "вывод одного бита при правильно написанном коде компилируется как ОДНА команда"... а в F2XX и F4XX ещё и выполняется за ОДИН такт!!! Учи матчасть!!! :)))
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Собственно вывод бита - одна, но расчет адреса доступа - еще две, умножение и сложение...
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Не надо путать "тёплое с мягким"!!!
Load/Store - это архитектура... а периферия - производитель... При длинном выводе на F2XX один цикл - установка, один цикл - сброс... выходная частота - половина от тактирующей... У F0XX - два цикла - установка, два цикла - сброс... выходная частота - четверть от тактирующей...
Следуя твоим измышлениям - частота, как минимум, должна быть раз в шесть меньше... что не наблюдается...
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Не надо путать теплое с синим...
:wink:
Под выводом я понимаю ЛЮБОЙ вывод, в том числе и в ОЗУ. А ОЗУ тактируется на частоте ядра.
Имея ввиду архитектуру, я говорю об ОТСУТСТВИИ битных команд В ПРИНЦИПЕ. Эти команды заменены на атомарный доступ в ОБЩЕМ адресном поле.
Либо через маску.
И собственно вывод мало кого интересует. Прежде надо АДРЕСОВАТЬ его. Формально, получив один адрес, можно зациклить вывод и получить идентичную 24-му Микрочипу частоту на ноге или в бите ОЗУ, но в линейном коде этот фокус не выйдет.

ЗЫ. И зря ты ломишься в открытую дверь, доказывая непонятно кому про рулез кортексов. Я вполне себе представляю область их применения, где им конкурентов найти трудно.
ЗЗЫ. Есть еще одна особенность архитектуры кортексов, которая мне показалась странной после ПИКов. Это отсутствие непосредственной адресации ОЗУ во всех командах кроме команд загрузки... Я конечно понимаю, что бОльшая часть данных обрабатывается как массивы и проблем особых в этом нет, но "осадочек остался"... :))) (это я так троллю) :music:
:)))
ЗЗЗЫ. Чиста мнение. Не слишком удобной оказалась и архитектура осциллятора. Формально схема синтеза тактовой частоты такая же, как в dsPIC33:
Fcy=Fxtal*M/(PREDIV*DIV1),
но из-за ограничения выходной частоты PLL диапазоном 16...48 (для F0xx) фактически второй делитель невозможно использовать при необходимости иметь частоту близкую к максимальной....
Chettuser

Сообщение Chettuser »

Не пойму я Вас обоих, один про dsPIC, второй про PIC32 - что к чему? Совершенно разные камни...
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Не, один про кортекс, а другой про пик32.
Причем тот, что про пик32, пытается доказать, что Микрочип с лицензированной МИПС глупее тех, кто лицензировал АРМ...
Зачем он это делает? Не знаю... :dont_know:
Родился
Сообщения: 1
Зарегистрирован: Вс апр 13, 2014 11:29:41

Сообщение andrei11 »

можно ли к одному порту ардуино уно подключить 8 светодиодов?
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Дык... в узкозаточенной задаче другой МК может и лучше ляжет... здесь никто и не спорит...
А вот как МК для широкого применения... для эмбедда и домашних поделок... STM8 и STM32 очень хороши... по всем параметрам... :music:
Но я ничего не навязываю... Просто после ПИК и АВР... на STM чувствуешь себя как-то свободно и раскованно... многие задачи решаются легко и играючись... С ними просто приятно работать...
"Я не даю готовых решений, я заставляю думать!"(С)
Chettuser

Сообщение Chettuser »

Что скажете насчёт PIC32MZ?
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Для КАКОЙ ЗАДАЧИ?
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Chettuser писал(а):Что скажете насчёт PIC32MZ?
Неинтересен...
"Я не даю готовых решений, я заставляю думать!"(С)
Chettuser

Сообщение Chettuser »

Хорошо, задача: Обработка 3D и вывод видео на дисплей 5" с контроллером SSD1963.
Ответить

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