| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Вопросы по архитектуре микроконтроллеров AVR https://radiokot.ru/forum/viewtopic.php?f=57&t=178557 |
Страница 1 из 3 |
| Автор: | Kalisnik [ Вс сен 05, 2021 20:27:23 ] |
| Заголовок сообщения: | Вопросы по архитектуре микроконтроллеров AVR |
- Я правильно понимаю, что "Рабочие регистры" - это внутренняя память ЦПУ МК? И АЛУ непосредственно может работать только с рабочими регистрами? А рабочие регистры уже обмениваются информацией с ОЗУ (SRAM)? - Физически, рабочие регистры - это часть общей ОЗУ? Или это отдельная ОЗУ в ЦПУ МК? |
|
| Автор: | COKPOWEHEU [ Вс сен 05, 2021 20:35:16 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Рабочие регистры это рабочие регистры, 32 ячейки памяти ядра, ни с какой другой памятью они не связаны. Но есть специальные команды вроде ld, st, lds, sts специально для пересылки ОЗУ-регистры и lpm/spm для флеш-регистр r0. Регистры это НЕ часть ОЗУ, но доступ к ним через операции работы с памятью возможен. Физически они устроены по-другому. |
|
| Автор: | Аlex [ Вс сен 05, 2021 20:37:53 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
https://yandex.ru/search/?lr=166645&cli ... 1%80%D0%B0 Просто море информации. Хотите, чтобы её за Вас прочитали и тут пересказали ?
|
|
| Автор: | Kalisnik [ Вс сен 05, 2021 20:41:56 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Аlex, нет. Хочу обсуждать ее вместе. Так запоминается легче и чаще всего раскрываются какие-то сложные для понимания нюансы. Это запрещено? |
|
| Автор: | Starichok51 [ Вс сен 05, 2021 20:46:00 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
я считаю, что это часть общего ОЗУ. например, в МК АТмега8 рабочие регистры и прочие служебные регистры занимают адреса с 0х00 до 0х5F. ОЗУ пользователя начинается с адреса 0х60. и команды обращения к оперативной памяти (lds и sts) работают со всеми регистрами также, как с ячейками SRAM. и в даташите все регистры и SRAM изображены на общей диаграмме со сплошной адресацией от нуля до "потолка" SRAM. ВСЕ регистры еще имеют собственное название "Регистровый файл". |
|
| Автор: | Аlex [ Вс сен 05, 2021 21:07:34 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Аlex, нет. Хочу обсуждать ее вместе. Что тут обсуждать ?Ответ на заданный Вами вопрос ищется за 10 секунд в интернете. Полагаю, поиск на все остальные вопросы займёт времени не более, чем на этот. Добавлено after 1 minute 52 seconds: Starichok51, вопрос был про физическое расположение РОН и SRAM. Физически, это разные области. Адресация тут не при чём. |
|
| Автор: | Starichok51 [ Вс сен 05, 2021 21:40:12 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
возможно, я не правильно понял вопрос. |
|
| Автор: | Kalisnik [ Вс сен 05, 2021 21:56:57 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Аlex писал(а): Что тут обсуждать ? Да мы уже обсуждаем. Вопрос был не только про физическую память. Вопрос был еще про то, может ли АЛУ МК напрямую работать с другой памятью напрямую, кроме "Регистрового файла"? Т.е. правильно ли, что биты данных для любых арифметических и логических операций в ЦПУ берутся только из "Регистрового файла"? Добавлено after 7 minutes 21 second: Т.е. я хочу понять для чего были реализованы РОН. Почему, например, для этих целей не использовать ячейки памяти SRAM? Добавлено after 1 minute 49 seconds: Может они работают быстрее? Что-то типа буфера ЦПУ? |
|
| Автор: | COKPOWEHEU [ Вс сен 05, 2021 22:10:18 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
я считаю, что это часть общего ОЗУ. Это не так. Регистры отображаются на память, но не являются ей. В контроллерах постарше на память отображается вообще все: и регистры периферии (РОН кстати уже не отображаются), и флешка, и внешняя память, и даже виртуальные устройства. Цитата: может ли АЛУ МК напрямую работать с другой памятью напрямую Именно AVR нет, но есть другие ядра вроде PIC, которые умеют складывать РОН с оперативкой. Добавлено after 1 minute 35 seconds: Может они работают быстрее? Что-то типа буфера ЦПУ? Вместо чтения литературы угадать пытаетесь? Это очень неэффективный способ. Даже разработка своего ядра эффективнее. |
|
| Автор: | Kalisnik [ Вс сен 05, 2021 22:13:43 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
COKPOWEHEU писал(а): Вместо чтения литературы угадать пытаетесь? Нет, делаю все параллельно. Если что-то непонятно, задаю вопрос здесь. |
|
| Автор: | Starichok51 [ Пн сен 06, 2021 08:35:08 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Kalisnik, подавляющее число команд (инструкций) в AVR состоит из одного слова (2 байта). и в одном слове невозможно сделать такое множество комбинаций из нулей и единиц, чтобы АЛУ работало и с РОН и с ОЗУ "полномасштабно". для работы с ОЗУ команды состоят уже из двух слов - нужно еще указать в команде адрес ячейки ОЗУ. понятно, что команда из двух слов выполняется в 2 раза медленнее, чем команда из одного слова. то есть, работа с ОЗУ медленнее, чем с РОН. а адрес ячейки ОЗУ занимает заметно больше 1 байта. и оставшихся бит в первом байте команды недостаточно, чтобы создать большой набор операций с ячейками ОЗУ. поэтому для работы с ОЗУ существуют только команды различных вариантов пересылки между РОН и конкретной ячейкой. |
|
| Автор: | parovoZZ [ Пн сен 06, 2021 10:05:29 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
РОН-ы? Они всегда относились к периферии. А где расположены - зависит от МК. В последних МК 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. Штудируйте даташит - там вся информация есть. |
|
| Автор: | Kalisnik [ Пн сен 06, 2021 10:41:01 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Starichok51, спасибо. Теперь стало понятнее. |
|
| Автор: | Dimon456 [ Пн сен 06, 2021 19:42:49 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Для начало стоило бы разобраться что такое АЛУ, и что входит в состав АЛУ, а уж потом приплетать сюда ОЗУ flash и EEPROM. parovoZZ писал(а): РОН-ы? Они всегда относились к периферии. Ни когда они не относились к периферии.parovoZZ писал(а): Штудируйте даташит - там вся информация есть. Начните хотя бы с КР1830ВЕ31.
|
|
| Автор: | parovoZZ [ Пн сен 06, 2021 23:10:32 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Даже в даташите показано, что РОН-ы не входят в состав АЛУ. Хоть они и связаны напрямую, но таки они отдельно. |
|
| Автор: | Starichok51 [ Вт сен 07, 2021 08:18:01 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
а никто тут и не говорил такую глупость, что РОН входят в состав АЛУ. |
|
| Автор: | astrahard [ Вт сен 07, 2021 08:48:04 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
А еще, AVR нехорош тем, что большинство инструкций не работают с регистрами 0-15, только с регистрами 16-31. Видимо потому, что Flash, для ускорения работы, сделана 16 разрядной и, поделена на страницы 16 байт. Вообщем архитектура очень примитивна, а периферия и контроллер прерываний изобилует грубыми ляпами. |
|
| Автор: | slav0n [ Вт сен 07, 2021 09:15:40 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
а Си так вообще пофиг где РОНы находятся |
|
| Автор: | astrahard [ Вт сен 07, 2021 10:13:36 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
Си то пофиг (а быстродействие уменьшается) но, вот прерывания от ШИМ теряются, если их больше одного запрограммировать. Например, установлены прерывания по переполнению и по совпадению. Прерывание по переполнению не вызывается вовсе, если установлено прерывание по совпадению. Все писалось на Си. Интересно, это ляп периферии или ляп контроллера прерываний? Вектора то разные. |
|
| Автор: | slav0n [ Вт сен 07, 2021 11:30:17 ] |
| Заголовок сообщения: | Re: Вопросы по архитектуре микроконтроллеров AVR |
а что говорит даташит? |
|
| Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


