|
IAR EWAVR - как избавиться от лишних команд? |
|
|
|
Aug 28 2011, 18:34
|

Местный
  
Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279

|
Цитата(_Bill @ Aug 28 2011, 21:51)  Скорее всего это фича. Все дело в том, что младшие регистры r0-r15 не могут быть использованы в некоторых инструкциях, например в ldi. Разработчики компилятора приняли соглашение, что загрузка констант в эти регистры происходит через рабочие регистры.Соответственно и чтение из портов В/В также выполняется через рабочие регистры. Все же, похоже, это - багофича. Потому как: Код #pragma vector= PCINT0_vect __interrupt void Pcint0(void) { Old_PINB = New_PINB; New_PINB = PINB; PORTB = Old_PINB; DDRB = New_PINB; } дает следующее: Код ST -Y, R16 // 28 Old_PINB = New_PINB; MOV R14, R15 // 29 New_PINB = PINB; IN R16, 0x03 MOV R15, R16 // 30 PORTB = Old_PINB; OUT 0x05, R14 // 31 DDRB = New_PINB; OUT 0x04, R15 // 32 } LD R16, Y+ RETI Почему-то здесь компилятор абсолютно не стесняется отсылать байт из регистра в порт без посредника. PS: Если попробовать любые порты ввода-вывода, для которых применимы не только IN и OUT, но также и LDS и STS, вывод идет без посредника, а ввод только через регистр-костыль. Что-то айаровцы в этом наглючили.
|
|
|
|
|
Aug 28 2011, 19:17
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(kv_addr @ Aug 28 2011, 20:28)  Нет ничего проще, там же и все пояснения: Мне надо не это, а файл проекта. Т.е. то, что идет с расширением eww и ewp. Самое простое - закать в архив все целиком и приложить к сообщению. Это нужно затем, чтобы проверить, с какими опциями проходила компиляция. Дело еще и в том, что меня тоже в свое время раздражало, что компилятор всё передавливает через промежуточный регистр R16, но после того, как установила оптимизацию medium по size, компилировать стало нормально. Поэтому и с вашим проектом я хотела поиграть режимом оптимизации, тем более что вы мне так не ответили (сообщение #7), проверяли ли вы влияние оптимизации на этот эффект или нет.
|
|
|
|
|
Aug 28 2011, 19:35
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(kv_addr @ Aug 28 2011, 22:34)  . Это не противоречит тому, что я написал выше. Младший регистр находится в правой части выражения, т.е. является источником данных.
Сообщение отредактировал IgorKossak - Sep 2 2011, 16:56
Причина редактирования: Бездумное цитирование
|
|
|
|
|
Aug 28 2011, 20:53
|

Местный
  
Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279

|
Цитата(Xenia @ Aug 28 2011, 23:17)  Мне надо не это, а файл проекта. Т.е. то, что идет с расширением eww и ewp. Самое простое - закать в архив все целиком и приложить к сообщению. Это нужно затем, чтобы проверить, с какими опциями проходила компиляция.
Дело еще и в том, что меня тоже в свое время раздражало, что компилятор всё передавливает через промежуточный регистр R16, но после того, как установила оптимизацию medium по size, компилировать стало нормально. Поэтому и с вашим проектом я хотела поиграть режимом оптимизации, тем более что вы мне так не ответили (сообщение #7), проверяли ли вы влияние оптимизации на этот эффект или нет. И это проблемы не составит. Попробуйте, посмотрите. По поводу оптимизации я вроде бы отвечал, перебрал все варианты. Бесполезно.
Прикрепленные файлы
Test.zip ( 14.81 килобайт )
Кол-во скачиваний: 16
|
|
|
|
|
Sep 2 2011, 13:41
|

Местный
  
Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279

|
Цитата(Xenia @ Aug 28 2011, 23:17)  Мне надо не это, а файл проекта. Т.е. то, что идет с расширением eww и ewp. Самое простое - закать в архив все целиком и приложить к сообщению. Это нужно затем, чтобы проверить, с какими опциями проходила компиляция.
Дело еще и в том, что меня тоже в свое время раздражало, что компилятор всё передавливает через промежуточный регистр R16, но после того, как установила оптимизацию medium по size, компилировать стало нормально. Поэтому и с вашим проектом я хотела поиграть режимом оптимизации, тем более что вы мне так не ответили (сообщение #7), проверяли ли вы влияние оптимизации на этот эффект или нет. И как успехи?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|