Например TDA7294

Форум РадиоКот • Просмотр темы - ATMEGA 8 и ATMEGA168 совместимость?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср ноя 19, 2025 11:21:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 71 ]    , 2, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Пн янв 27, 2025 22:57:05 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
COKPOWEHEU, терминология понятна вполне. Это было так, к слову. Что у АВРок адресация через отображение на память универсальна для всего регистрового файла.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 00:42:56 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Да, насколько я помню, там даже РОНы можно адресовать через оперативку.
Я-то к тому говорил, что в MMIO (за пределы in/out) они вылезли не от хорошей жизни. И не самым удобным способом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 01:38:24 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 1
COKPOWEHEU, просто в системе команд для адресации IO атмелы отвели 6 бит всего.... Тем самым себя ограничив... "64 регистра хватит всем"
А для части команд вообще 5 бит адресация IO

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 02:17:12 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Потому что всего 16 бит на команду. Да еще хвастались развесистым ассемблером, более сотни инструкций. Впрочем, в 32-битках тоже адрес периферии в команде не кодируют.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 11:04:17 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 1
COKPOWEHEU, и что, разве мало? Вон некоторые на "современном ассемблере" мегапрограммы пишут с собственным отладчиком... И программы, во много раз более компактные, нежели на ЯВУ. Значит хороший ассемблер, надо брать. Просто на этапе разработки системы команд не получилось, видимо, выделить больше 6 бит на адрес периферии. Зато он внутри команды, а не идет отдельным операндом, занимая еще одну ячейку флеша.

Добавлено after 5 minutes 35 seconds:
А "развесистость" меня тоже посмешила. BRBC/BRBS раздуть до 18 ассемблерных мнемоник. То же самое про BSET/BCLR...

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 11:08:58 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 454
Рейтинг сообщения: 0
Просто на этапе разработки системы команд не получилось, видимо, выделить больше 6 бит на адрес периферии.

25 лет назад 6 бит могло казаться не так и мало, у первого AVR из периферии самый минимум был, ни UART/SPI, ни даже ОЗУ )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 11:24:55 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Ну да) просто чипы эволюционировали с развитием условий. Ну и ставили заплатки где можно. Как то выбирались из ситуации)

Добавлено after 1 minute 49 seconds:
..стараясь сохранить приемственность)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 12:01:34 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18874
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 1
Медали: 1
Лучший человек Форума 2017 (1)
Just_Fluffy писал(а):
BRBC/BRBS раздуть до 18 ассемблерных мнемоник.
там есть условия, которые определяются комбинацией битов в SREG. так что, не всегда достаточно проверить только один бит.
а большое количество мнемоник из-за того, что есть дублирующие мнемоники, имеющие один и тот же код.
например, BRCS и BRLO имеют одинаковый код. но вторая (если меньше) логически более удобна, чем просто "если перенос установлен".

Добавлено after 15 minutes 22 seconds:
и еще.
в этом большом количестве мнемоник есть огромное удобство - мне не нужно помнить номера каждого бита в регистре.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 12:52:23 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 1
COKPOWEHEU, и что, разве мало? Вон некоторые на "современном ассемблере" мегапрограммы пишут с собственным отладчиком... И программы, во много раз более компактные, нежели на ЯВУ. Значит хороший ассемблер, надо брать.

Ну, "во много раз" для программы более-менее вменяемого размера и более-менее вменяемого срока разработки я, конечно, не поверю. Пара десятков процентов от силы. Дальше у человека уже закончится внимательность за всем следить.
Просто на этапе разработки системы команд не получилось, видимо, выделить больше 6 бит на адрес периферии.

Ну, не так уж они и ошиблись: как раз когда 6 бит закончились, закончилась и популярность 8-битных контроллеров.
А "развесистость" меня тоже посмешила. BRBC/BRBS раздуть до 18 ассемблерных мнемоник. То же самое про BSET/BCLR...

Чего не сделаешь ради маркетинга. Даже псевдо-команды в список добавлять будешь.
Хм. Даже интересно, сколько у них команд на самом деле, без дублирования.

Добавлено after 42 minutes 43 seconds:
Хм. Даже интересно, сколько у них команд на самом деле, без дублирования.

Провел опыт: создал бинарный файл с последовательными 16-битных числами (по 2 штуки каждого на случай lds, sts) и прошелся по нему скриптом:
Код:
$ avr-objdump avr_test.bin -b binary -D -m avr | tail -n +8 | sed 's/[^\t]*\t[^\t]*\t\([0-9a-z.]*\).*/\1/' | sort -u | wc -l
107

Правда, там еще .word затесался, но все равно, более сотни инструкций. Включая такие интересные, как las, lat, xch


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 17:15:38 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
COKPOWEHEU писал(а):
Ну, "во много раз" для программы более-менее вменяемого размера и более-менее вменяемого срока разработки я, конечно, не поверю.
В сети встречала утверждение, что грамотно написанная сишная программа дает оверхед 20-30% против грамотного асм-кода.
Но бывают частные случаи, когда функционал простой и можно писать все на регистрах... Либо укладываться в 256 байт ОЗУ, "законстантив" ZH...
Можно еще ради экономии сидеть оптимизировать код, используя различные ухищрения и аппаратные особенности... Особенно, когда программа не умещается во флеш ровно на один байт )))
Еще можно уйти от универсальности программы на ЯВУ, заточив код под какой то один-два МК. Но это частные случаи (как срачик про загрузчики).
Как по мне, асм хорош для каких то критичных ко времени задач. Когда нужно сделать минимальный код, а ЯВУ навешает лишнего согласно своих соглашений. Причем не чистый асм, а ассемблерная вставка.
А в остальном - срок разработки, читаемость и переносимость кода - это не для ассемблера.

Starichok51 писал(а):
в этом большом количестве мнемоник есть огромное удобство - мне не нужно помнить номера каждого бита в регистре.
Мне их тоже не нужно помнить ))))))
if (a>0) { action; }
А если мне нужна ассемблерная вставка, то я могу и в справке подсмотреть мнемонику.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Вт янв 28, 2025 17:33:30 
Держит паяльник хвостом
Аватар пользователя

Карма: 17
Рейтинг сообщений: 24
Зарегистрирован: Вт янв 04, 2011 13:26:17
Сообщений: 962
Откуда: Лен.Обл.
Рейтинг сообщения: 0
В общем-то всё гораздо проще оказалось, есть плата адруино уно с краватью, только кварц перепаять, с 16 на 8, в програматоре залить восьмую и вставить в кравать вместо 168.
Изображение

_________________
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 04:35:40 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 1
Можно еще ради экономии сидеть оптимизировать код, используя различные ухищрения и аппаратные особенности... Особенно, когда программа не умещается во флеш ровно на один байт )))

А представьте себе такую хардкорную оптимизацию под, хотя бы, stm32f103, контроллер 10-20-летнего возраста с 64к флеша.
Just_Fluffy писал(а):
Еще можно уйти от универсальности программы на ЯВУ, заточив код под какой то один-два МК.

Можно. Но это будет скорее пример демосцены "смотрите, как я умею", чем реального проекта. Например, вроде такого.
Just_Fluffy писал(а):
Как по мне, асм хорош...

...для локальных оптимизаций, для критичного к времени выполнения кода (vusb отличный пример; хотя в более мощных камнях скорость выполнения инструкций уже не гарантируется - кеши, предсказания, да и просто пропускная способность шины команд). Для супер-низкоуровневых вещей вроде переключателя контекста в ОС. Очень хорош для обучения. И, разумеется, при просмотре дизассемблированного кода - реверсе или просто отладке.
Just_Fluffy писал(а):
Причем не чистый асм, а ассемблерная вставка.

Отчего же, можно и чистый асм. Очень часто стартап-файлы (тот код, который подготавливает стек, переменные, спецрегистры и прочее к запуску высокоуровневого кода) пишутся именно на чистом асме. На AVR он уже написан и хорошо спрятан, а вот на arm или risc-v его приходится качать у производителя или писать самому. Ну и другие примеры использования библиотек на асме никто не отменял.
Just_Fluffy писал(а):
А если мне нужна ассемблерная вставка, то я могу и в справке подсмотреть мнемонику.

Не, не. Когда есть удачная мнемоника это очень удобно. Зачастую получается писать ассемблерный код просто из головы. Не говоря уж о чтении (в т.ч. дизасма).
java писал(а):
В общем-то всё гораздо проще оказалось, есть плата адруино уно с краватью, только кварц перепаять, с 16 на 8, в програматоре залить восьмую и вставить в кравать вместо 168.

Ну вот, так и не дали форумчанам блеснуть своими навыками :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 10:59:41 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
COKPOWEHEU, не, я асм в целом помню, но в основном помнятся BREQ и BRNE, а остальные ветвления по флагам приходится подглядывать.... Ну не пишу я на асме уже давно... Иногда что то накалякать как вставку... Либо глянуть чужой код...

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 12:17:27 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
Ну вот когда в чужом коде встречается brlo или brsh, это же понятнее, чем brbs 0 и brbc 0.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 12:38:00 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Это из-за отсутствия определений битов SREG. Хотя если самому определить, то типа brbs (1<<bit_T) совсем неплохо выглядит.. да и меньше команд знать..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 12:48:58 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1484
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15263
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
У АВРок все команды достаточно обоснованы.
Особенности проистекают из структуры ядра и желания подстроиться под ЯВУ уже на уровне ассемблера (avrasm2).
Вложение:
шаблон_команд_AVR_2024.pdf [266.52 KiB]
Скачиваний: 40

8)
Такая "шпора" быстрее память освежает.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 13:11:20 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
BOB51 писал(а):
и желания подстроиться под ЯВУ уже на уровне ассемблера
да, обилие команд чтобы абстрагироваться от железа. Их можно просто как макросы воспринимать..

Например, переход контроллером совершается не потому что меньше или больше, а по факту проверки флага sreg. Так как предыдущая команда его устанавливает или очищает.

Это как компромисс между машинным языком и человеческим))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 13:27:48 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 3
Особенности проистекают из структуры ядра и желания подстроиться под ЯВУ уже на уровне ассемблера (avrasm2).

Если бы хотели подстроиться под ЯВУ, сделали бы косвенную адресацию. Вот у меня по адресу Z=0x0124 лежит объект, как обратиться к его полю? Никак - сначала прибавляем к Z смещение, потом обращаемся. Вот у меня на стеке выделено пять локальных переменных, как к ним обратиться? Снова никак - сначала загрузить в регистр SP, потом добавить смещение, и только потом обращаемся.
Для сравнения, в risc-v регистр SP это просто РОН, и есть команды вроде lw reg, 4(sp), sw reg, -6(reg). В ARM вроде тоже что-то подобное есть.
BOB51 писал(а):
Такая "шпора" быстрее память освежает.

Только вот со шрифтами там довольно печально. Да и с дизайном тоже. Сравните.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 13:32:15 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 454
Рейтинг сообщения: 0
Вот у меня по адресу Z=0x0124 лежит объект, как обратиться к его полю?

LDD Rd, Z+q ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATMEGA 8 и ATMEGA168 совместимость?
СообщениеДобавлено: Ср янв 29, 2025 14:11:20 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1484
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15263
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Табличное чтение есть, переход ICALL , IJMP есть
сложение/вычитание с индекс-регистрами (ADIW, SBIW) есть,
Обмен регистровых пар MOVW есть.
Чего ещё не хватает то?
8)
Разве что спец команды условного возврата как у I8080/Z80 ...
Так их устроить не так уж и сложно.
Быстродействие вполне позволяет.
:sleep:
Насчет шрифтов и оформления в "шпоре" - это пдфка с *.bmp оригинала 90х годов. Переделывать леньки (пикушки у меня уже в splan7 отрисованы, а 51я и I8080/Z80 вообще вручную с карандашиком - тогда ещё с компами напряг был).
8)
И второе...
"шпаргалки" не заменяют основной документации по системе команд и даташитам МК - это всего лишь возможность быстро "окинуть взглядом" имеющиеся в распоряжении ресурсы.
(возможность выбора более удачного решения из "чуток подзабытого" при перерывах в работе с МК)
:wink:


Последний раз редактировалось BOB51 Ср янв 29, 2025 14:48:13, всего редактировалось 2 раз(а).

Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 71 ]    , 2, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Kontantin и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y