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

 
 
> XMEGA и IAR5.11B, оптимизатор
koljakh
сообщение Aug 11 2009, 10:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 108
Регистрация: 14-07-09
Из: Украина, Киев
Пользователь №: 51 248



Добрый день, всем! Есть один вопрос. Сейчас занимаюсь оптимизацией кода под ATXMEGA128A1,
и вот на что я наткнулся. Внешняя память у меня не подключена, все находится внутри. Следовательно
регистры RAMPD,RAMPX,RAMPZ,RAMPY у меня всегда равны нулю. Но компилер упорно их все время обнуляет и в фоне, и в прерываниях.
При этом для сохранения в прерываниях он использует обычные регистры, которые он перед этим сохраняет, а потом восстанавливает.
Т.к. прерываний у меня дофига, хотелось как-то убрать лишние действия. Вопрос, кто-нить делал это? В стартапе я их обнулю, и дальше компилятор забывает об их существовании.
У компилятора есть предопределенные символы __HAS_RAMPX__, ..., но отенить их #undef нельзя, к сожалению. Или на винавр переходить,
как там дела с этим обстоят?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Aug 11 2009, 11:56
Сообщение #2


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

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



Цитата
С RAMPZ сложнее, он используеться для адресации флеш в инструкции ELPM. Если в
программе используеться FLASH для хранения данных то необходимо запрещать прерывания на все время пока RAMPZ не равен 0.


Либо хранить данные в первых 64х килобайтах и работать с ними через мелкий указатель, что приведет к генерации LPM против ELPM. Такой метод немного проще.


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


Частый гость
**

Группа: Участник
Сообщений: 108
Регистрация: 14-07-09
Из: Украина, Киев
Пользователь №: 51 248



Цитата(Rst7 @ Aug 11 2009, 13:56) *
Либо хранить данные в первых 64х килобайтах и работать с ними через мелкий указатель, что приведет к генерации LPM против ELPM. Такой метод немного проще.



Да у меня кода кил на 20, так что у меня нет необходимисти в этих регистрах вообще.
Просто этот кристалл вышел первым, и вариантов особо не было.
А 8-слойку переразводить дороговато, да и периферия вся используется под завязку.
Ща докачаю ИАР, а то у меня в 5.11 А3 нет вообще, там только А1
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- koljakh   XMEGA и IAR5.11B   Aug 11 2009, 10:11
- - aesok   Цитата(koljakh @ Aug 11 2009, 14:11) сожа...   Aug 11 2009, 10:15
|- - koljakh   Цитата(aesok @ Aug 11 2009, 12:15) Точно ...   Aug 11 2009, 10:28
|- - koljakh   Ядро одинаковое Цитата(Xenia @ Aug 11 2009, ...   Aug 11 2009, 10:37
|- - Xenia   Цитата(koljakh @ Aug 11 2009, 13:37) Ядро...   Aug 11 2009, 10:48
|- - koljakh   Цитата(Xenia @ Aug 11 2009, 12:48) Трудно...   Aug 11 2009, 11:08
- - Rst7   ЦитатаНо компилер упорно их все время обнуляет и в...   Aug 11 2009, 10:22
|- - Xenia   Цитата(Rst7 @ Aug 11 2009, 13:22) Ждем но...   Aug 11 2009, 10:34
- - Rst7   ЦитатаВот только исправлен ли там этот баг, я не з...   Aug 11 2009, 10:55
|- - Xenia   Цитата(Rst7 @ Aug 11 2009, 13:55) Я, кста...   Aug 11 2009, 11:02
|- - koljakh   Цитата(Rst7 @ Aug 11 2009, 12:55) Это не ...   Aug 11 2009, 11:25
|- - aesok   Цитата(koljakh @ Aug 11 2009, 15:18) Спас...   Aug 11 2009, 11:27
- - Rst7   ЦитатаА какая версия еще новее, чем EWAVR-5.30 ? ...   Aug 11 2009, 11:05
- - Rst7   ЦитатаОгромное спасибо, буду качать Можете не тор...   Aug 11 2009, 11:11
- - Rst7   ЦитатаВыкинте в корзину этот совет, вы получите не...   Aug 11 2009, 11:29
|- - aesok   Цитата(Rst7 @ Aug 11 2009, 15:29) Да ну? ...   Aug 11 2009, 11:31
- - Rst7   ЦитатаЩа попробую, получается что все-таки тип про...   Aug 11 2009, 11:31
|- - koljakh   Цитата(Rst7 @ Aug 11 2009, 13:31) Не тип ...   Aug 11 2009, 11:46


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

 


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


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