реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> вопрос по регистровой памяти, Atmega 128 32*8 регистров общего назначения...
skopus
сообщение Feb 16 2006, 11:39
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124



Можно ли как-нибудь в IAR C задействовать ВСЕ регистры? Он использует, насколько я понимаю, только первые 32. Я вот хотел бы поместить структуру не в оперативную память, а в регистровую. Это вообще возможно? И будет ли прирост скорости от этого?
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 16 2006, 11:49
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(skopus @ Feb 16 2006, 13:39) *
Можно ли как-нибудь в IAR C задействовать ВСЕ регистры? Он использует, насколько я понимаю, только первые 32. Я вот хотел бы поместить структуру не в оперативную память, а в регистровую. Это вообще возможно? И будет ли прирост скорости от этого?


32*8 - обозначает тридцать два восьмиразрядных регистра. соответственно IAR использует все регистры и так.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 16 2006, 12:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(skopus @ Feb 16 2006, 18:39) *
Можно ли как-нибудь в IAR C задействовать ВСЕ регистры? Он использует, насколько я понимаю, только первые 32. Я вот хотел бы поместить структуру не в оперативную память, а в регистровую. Это вообще возможно? И будет ли прирост скорости от этого?


Как правильно заметил defunct в МК AVR ВСЕГО 32 регистра общего назначения :-).

В IAR под нужды программиста можно задействовать часть регистров (R4..R15: для Си). Для этого надо зайти в опции проекта (Project->Options->Compiler->Code). Кроме того к регистрам можно обращаться и как к ячейкам памяти с адреса 0х00 по 0х1F. Соответственно, и структуры там можно размещать, но вот вопрос - нужно ли это. По моему кроме хромающего кода, полного глюков, Вы ни чего не получите. Лучше добиваться повышения скорости другими методами. Например применением более эффективного алгоритма :-)


--------------------
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 16 2006, 13:37
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



prottoss , чтобы код не хромал и не было глюков надо читать описание на компилятор, где говорится, что залочивание более девяти регистров может привести к конфликтам с некоторыми библиотечными функиями (т. к. библиотеки компилировались и собирались без залочивания регистров).
Сам использую залочивание во многих проектах, даже весьма сложных. Пишу на С++ с применением ОСРВ.
Никогда не наблюдал глюков от залочивания.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Feb 16 2006, 15:22
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(IgorKossak @ Feb 16 2006, 20:37) *
prottoss , чтобы код не хромал и не было глюков надо читать описание на компилятор, где говорится, что залочивание более девяти регистров может привести к конфликтам с некоторыми библиотечными функиями (т. к. библиотеки компилировались и собирались без залочивания регистров).
Сам использую залочивание во многих проектах, даже весьма сложных. Пишу на С++ с применением ОСРВ.
Никогда не наблюдал глюков от залочивания.


Когда я говорил про хромой код, я имел ввиду расположение в регистровой памяти структур, тема то про это. А залочивание регистров я и сам использую, тоже безглючно.


--------------------
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 16 2006, 18:03
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(prottoss @ Feb 16 2006, 17:22) *
Когда я говорил про хромой код, я имел ввиду расположение в регистровой памяти структур, тема то про это. А залочивание регистров я и сам использую, тоже безглючно.

Т. е. если Вы говорили о стиле программирования, то полностью с Вами согласен.
За исключением крайне необходимых моментов подобных трюков лучше не делать.
Что касается использования регистров компилятором, то лучше для себя принять, что ему (компилятору) виднее.
Go to the top of the page
 
+Quote Post
viakon
сообщение Feb 17 2006, 04:18
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Цитата(skopus @ Feb 16 2006, 16:39) *
Можно ли как-нибудь в IAR C задействовать ВСЕ регистры? Он использует, насколько я понимаю, только первые 32. Я вот хотел бы поместить структуру не в оперативную память, а в регистровую. Это вообще возможно? И будет ли прирост скорости от этого?


Обращение к регистровой памяти, такое же как к внутреннему ОЗУ. Собственно это ОЗУ и есть, просто система команд позволяет непосредственно адресоваться и производить операции только с первыми 32 ячейками.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Feb 17 2006, 07:45
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Вообще-то AVR это RISC процессор,
а идеология RISC как раз и состоит в минимизации фокусов с регистрами
и максимизации простых операций load/store.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 17 2006, 10:01
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(beer_warrior @ Feb 17 2006, 09:45) *
Вообще-то AVR это RISC процессор,
а идеология RISC как раз и состоит в минимизации фокусов с регистрами
и максимизации простых операций load/store.


Ух ты, вот это формулировка wink.gif

А пояснить поподробней wink.gif А то я всегда считал, что для RISC важны именно операции регистр-регистр, т.к. load/store - это медленно.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 09:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016