Ващето вывод одного бита при правильно написанном коде компилируется как ОДНА команда...
А в Кортексах не менее трех, да и то при наличии битовой адресации...
Сами и ответили на свой вопрос...
В 10...16-х на выходе будет две команды movlw <#mask> и xorwf <register>
В 18-х и 24-х одна команда btg <register, #bit>
Просто вывод вида а |= 0x01<<3 превращается в bsf a, 3
PS. Обсуждались не преимущества Кортекса, а битовая адресация...
КРАМ писал(а):Обсуждались не преимущества Кортекса, а битовая адресация...
А что там обсуждать??? Уже разобрались...
А по поводу "преимущества Кортекса"... так это очевидно... несмотря на все попытки...
Для примера... реверс битов (разворот) байта...
b = __REV(__RBIT(a));
Во что это выльется в АВР или ПИК???
"Я не даю готовых решений, я заставляю думать!"(С)
обсуждались не преимущества Кортекса, а битовая адресация...
напугала фраза:
При отсутствии битовых команд и битового расширения адресов любая битовая команда превращается в НАБОР команд. Тогда и заявленная производительность - фикция...
проверил как с этим у других мк - круче в этом только пики. У меня, в моих программках мало работы с битами - кортексы рулят.
oleg110592 писал(а):круче в этом только пики. У меня, в моих программках мало работы с битами - кортексы рулят.
Да не ведись... Марк троллит по незнанию и в расчёте на незнание...
Инверсия бита самая невостребованная операция... а при групповых операциях кортексы рулят однозначно... Тут примеров можно кидать и кмдать...
"Я не даю готовых решений, я заставляю думать!"(С)
"Глубокая мысль" в том, что байтный доступ в МК - одно из основных свойств его как УПРАВЛЯЮЩЕГО устройства.
Поэтому и в ПИКах и в АРМах и в АВР создан общий инструмент.
И в АРМах механизм битной адресации дает большое удобство при обработке больших БИТНЫХ массивов.
Последний раз редактировалось КРАМ Сб апр 12, 2014 21:26:51, всего редактировалось 1 раз.
"Вы не любите кошек? Да вы их просто готовить не умеете!"(С)
КРАМ писал(а):Ващето вывод одного бита при правильно написанном коде компилируется как ОДНА команда...
А в Кортексах не менее трех, да и то при наличии битовой адресации...
Чушь!!! От архитектуры Cortex это никак не зависит... у Cortex тоже "вывод одного бита при правильно написанном коде компилируется как ОДНА команда"... а в F2XX и F4XX ещё и выполняется за ОДИН такт!!! Учи матчасть!!!
"Я не даю готовых решений, я заставляю думать!"(С)
Не надо путать "тёплое с мягким"!!!
Load/Store - это архитектура... а периферия - производитель... При длинном выводе на F2XX один цикл - установка, один цикл - сброс... выходная частота - половина от тактирующей... У F0XX - два цикла - установка, два цикла - сброс... выходная частота - четверть от тактирующей...
Следуя твоим измышлениям - частота, как минимум, должна быть раз в шесть меньше... что не наблюдается...
"Я не даю готовых решений, я заставляю думать!"(С)
Не надо путать теплое с синим...
Под выводом я понимаю ЛЮБОЙ вывод, в том числе и в ОЗУ. А ОЗУ тактируется на частоте ядра.
Имея ввиду архитектуру, я говорю об ОТСУТСТВИИ битных команд В ПРИНЦИПЕ. Эти команды заменены на атомарный доступ в ОБЩЕМ адресном поле.
Либо через маску.
И собственно вывод мало кого интересует. Прежде надо АДРЕСОВАТЬ его. Формально, получив один адрес, можно зациклить вывод и получить идентичную 24-му Микрочипу частоту на ноге или в бите ОЗУ, но в линейном коде этот фокус не выйдет.
ЗЫ. И зря ты ломишься в открытую дверь, доказывая непонятно кому про рулез кортексов. Я вполне себе представляю область их применения, где им конкурентов найти трудно.
ЗЗЫ. Есть еще одна особенность архитектуры кортексов, которая мне показалась странной после ПИКов. Это отсутствие непосредственной адресации ОЗУ во всех командах кроме команд загрузки... Я конечно понимаю, что бОльшая часть данных обрабатывается как массивы и проблем особых в этом нет, но "осадочек остался"... (это я так троллю)
ЗЗЗЫ. Чиста мнение. Не слишком удобной оказалась и архитектура осциллятора. Формально схема синтеза тактовой частоты такая же, как в dsPIC33:
Fcy=Fxtal*M/(PREDIV*DIV1),
но из-за ограничения выходной частоты PLL диапазоном 16...48 (для F0xx) фактически второй делитель невозможно использовать при необходимости иметь частоту близкую к максимальной....
Не, один про кортекс, а другой про пик32.
Причем тот, что про пик32, пытается доказать, что Микрочип с лицензированной МИПС глупее тех, кто лицензировал АРМ...
Зачем он это делает? Не знаю...
Дык... в узкозаточенной задаче другой МК может и лучше ляжет... здесь никто и не спорит...
А вот как МК для широкого применения... для эмбедда и домашних поделок... STM8 и STM32 очень хороши... по всем параметрам...
Но я ничего не навязываю... Просто после ПИК и АВР... на STM чувствуешь себя как-то свободно и раскованно... многие задачи решаются легко и играючись... С ними просто приятно работать...
"Я не даю готовых решений, я заставляю думать!"(С)