Обсуждаем контроллеры компании Atmel.
Ответить

Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 20:27:23

- Я правильно понимаю, что "Рабочие регистры" - это внутренняя память ЦПУ МК? И АЛУ непосредственно может работать только с рабочими регистрами? А рабочие регистры уже обмениваются информацией с ОЗУ (SRAM)?
- Физически, рабочие регистры - это часть общей ОЗУ? Или это отдельная ОЗУ в ЦПУ МК?

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 20:35:16

Рабочие регистры это рабочие регистры, 32 ячейки памяти ядра, ни с какой другой памятью они не связаны.
Но есть специальные команды вроде ld, st, lds, sts специально для пересылки ОЗУ-регистры и lpm/spm для флеш-регистр r0.
Регистры это НЕ часть ОЗУ, но доступ к ним через операции работы с памятью возможен. Физически они устроены по-другому.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 20:37:53

https://yandex.ru/search/?lr=166645&cli ... 1%80%D0%B0
Просто море информации. Хотите, чтобы её за Вас прочитали и тут пересказали ? :facepalm:

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 20:41:56

Аlex, нет. Хочу обсуждать ее вместе. Так запоминается легче и чаще всего раскрываются какие-то сложные для понимания нюансы. Это запрещено?

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 20:46:00

я считаю, что это часть общего ОЗУ.
например, в МК АТмега8 рабочие регистры и прочие служебные регистры занимают адреса с 0х00 до 0х5F.
ОЗУ пользователя начинается с адреса 0х60.
и команды обращения к оперативной памяти (lds и sts) работают со всеми регистрами также, как с ячейками SRAM.
и в даташите все регистры и SRAM изображены на общей диаграмме со сплошной адресацией от нуля до "потолка" SRAM.
ВСЕ регистры еще имеют собственное название "Регистровый файл".

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 21:07:34

Аlex, нет. Хочу обсуждать ее вместе.
Что тут обсуждать ?
Ответ на заданный Вами вопрос ищется за 10 секунд в интернете. Полагаю, поиск на все остальные вопросы займёт времени не более, чем на этот.

Добавлено after 1 minute 52 seconds:
Starichok51, вопрос был про физическое расположение РОН и SRAM. Физически, это разные области. Адресация тут не при чём.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 21:40:12

возможно, я не правильно понял вопрос.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 21:56:57

Аlex писал(а):Что тут обсуждать ?

Да мы уже обсуждаем. :)

Вопрос был не только про физическую память. Вопрос был еще про то, может ли АЛУ МК напрямую работать с другой памятью напрямую, кроме "Регистрового файла"? Т.е. правильно ли, что биты данных для любых арифметических и логических операций в ЦПУ берутся только из "Регистрового файла"?

Добавлено after 7 minutes 21 second:
Т.е. я хочу понять для чего были реализованы РОН. Почему, например, для этих целей не использовать ячейки памяти SRAM?

Добавлено after 1 minute 49 seconds:
Может они работают быстрее? Что-то типа буфера ЦПУ?

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 22:10:18

я считаю, что это часть общего ОЗУ.

Это не так. Регистры отображаются на память, но не являются ей. В контроллерах постарше на память отображается вообще все: и регистры периферии (РОН кстати уже не отображаются), и флешка, и внешняя память, и даже виртуальные устройства.
может ли АЛУ МК напрямую работать с другой памятью напрямую

Именно AVR нет, но есть другие ядра вроде PIC, которые умеют складывать РОН с оперативкой.

Добавлено after 1 minute 35 seconds:
Может они работают быстрее? Что-то типа буфера ЦПУ?

Вместо чтения литературы угадать пытаетесь? Это очень неэффективный способ.
Даже разработка своего ядра эффективнее.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вс сен 05, 2021 22:13:43

COKPOWEHEU писал(а):Вместо чтения литературы угадать пытаетесь?

Нет, делаю все параллельно. Если что-то непонятно, задаю вопрос здесь.

Re: Вопросы по архитектуре микроконтроллеров AVR

Пн сен 06, 2021 08:35:08

Kalisnik, подавляющее число команд (инструкций) в AVR состоит из одного слова (2 байта).
и в одном слове невозможно сделать такое множество комбинаций из нулей и единиц, чтобы АЛУ работало и с РОН и с ОЗУ "полномасштабно".
для работы с ОЗУ команды состоят уже из двух слов - нужно еще указать в команде адрес ячейки ОЗУ.
понятно, что команда из двух слов выполняется в 2 раза медленнее, чем команда из одного слова. то есть, работа с ОЗУ медленнее, чем с РОН.
а адрес ячейки ОЗУ занимает заметно больше 1 байта. и оставшихся бит в первом байте команды недостаточно, чтобы создать большой набор операций с ячейками ОЗУ.
поэтому для работы с ОЗУ существуют только команды различных вариантов пересылки между РОН и конкретной ячейкой.

Re: Вопросы по архитектуре микроконтроллеров AVR

Пн сен 06, 2021 10:05:29

РОН-ы? Они всегда относились к периферии. А где расположены - зависит от МК. В последних МК AVR вообще всё находится в едином адресном пространстве, что делает работу с ними в разы приятнее.
Теперь запись в EEPROM выглядит так:
Код:
void EEPROM_write_word (uint8_t eeprom_adr, uint16_t* eeprom_data)
{
    uint16_t*   eeprom;
   
    eeprom = (uint16_t*)(EEPROM_START + eeprom_adr);
   
    *eeprom = *eeprom_data;
   
    while (NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm);
   
    CCP = CCP_SPM_gc;
    NVMCTRL.CTRLA = NVMCTRL_CMD_PAGEERASEWRITE_gc;
}

Аналогично можно "чиркануть" во flash.


Штудируйте даташит - там вся информация есть.

Re: Вопросы по архитектуре микроконтроллеров AVR

Пн сен 06, 2021 10:41:01

Starichok51, спасибо. Теперь стало понятнее.

Re: Вопросы по архитектуре микроконтроллеров AVR

Пн сен 06, 2021 19:42:49

Для начало стоило бы разобраться что такое АЛУ, и что входит в состав АЛУ, а уж потом приплетать сюда ОЗУ flash и EEPROM.
parovoZZ писал(а):РОН-ы? Они всегда относились к периферии.
Ни когда они не относились к периферии.
parovoZZ писал(а):Штудируйте даташит - там вся информация есть.
Начните хотя бы с КР1830ВЕ31.

Re: Вопросы по архитектуре микроконтроллеров AVR

Пн сен 06, 2021 23:10:32

Даже в даташите показано, что РОН-ы не входят в состав АЛУ. Хоть они и связаны напрямую, но таки они отдельно.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вт сен 07, 2021 08:18:01

а никто тут и не говорил такую глупость, что РОН входят в состав АЛУ.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вт сен 07, 2021 08:48:04

А еще, AVR нехорош тем, что большинство инструкций не работают с регистрами 0-15, только с регистрами 16-31. Видимо потому, что Flash, для ускорения работы, сделана 16 разрядной и, поделена на страницы 16 байт. Вообщем архитектура очень примитивна, а периферия и контроллер прерываний изобилует грубыми ляпами.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вт сен 07, 2021 09:15:40

а Си так вообще пофиг где РОНы находятся

Re: Вопросы по архитектуре микроконтроллеров AVR

Вт сен 07, 2021 10:13:36

Си то пофиг (а быстродействие уменьшается) но, вот прерывания от ШИМ теряются, если их больше одного запрограммировать. Например, установлены прерывания по переполнению и по совпадению. Прерывание по переполнению не вызывается вовсе, если установлено прерывание по совпадению. Все писалось на Си. Интересно, это ляп периферии или ляп контроллера прерываний? Вектора то разные.

Re: Вопросы по архитектуре микроконтроллеров AVR

Вт сен 07, 2021 11:30:17

а что говорит даташит?
Ответить