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

 
 
> Как заставить IAR AVR генерить SBI/CBI?
Yellow Tiger
сообщение May 31 2012, 17:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 12-04-07
Пользователь №: 26 985



Знакомлюсь с IAR'ом, не могу понять, как заставить его работать с линиями GPIO с помощью инструкций SBI/CBI.
Код типа :
Код
        PORTG_Bit3 = 1;
        PORTG_Bit3 = 0;

транслируется вместо SBI/CBI в тройки инструкций LDS | ANDI(ORI) | STS :
Код
        LDS     R16, 101
        ANDI    R16, 0xF7
        STS     101, R16
        LDS     R16, 101
        ORI     R16, 0x08
        STS     101, R16


От оптимизации, похоже, не зависит (пробовал уровни "NO" и "High, for siZe").
В референсе по компилятору ничего на эту тему не нашел, в инете тоже. Но ведь должен быть способ?

_______________________
IAR C/C++ Compiler V6.10

Сообщение отредактировал Yellow Tiger - May 31 2012, 17:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Yellow Tiger
сообщение May 31 2012, 19:25
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 12-04-07
Пользователь №: 26 985



Да, это я с перепугу, прошу пардону. :о)))

Задумал я, в качестве знакомства с IAR'ом, переписать его SFR-определения так, чтобы обращения к битам регистров выглядели привычным для меня образом - rUCSR0A.UDRE0 (перехожу-то с CV-Avr), вот и разбегаются глаза от большого количества новостей. А на самом деле всё действительно работает:
Код
  ;            while ( !(rUCSR0A.UDRE0) )
   9B5D               SBIS    0x0B, 0x05
   CFFE               RJMP    ??_putchar_0



  ;                rUCSR0A.UDRE0 = 1;
   9A5D               SBI     0x0B, 0x05
  ;                rUCSR0A.UDRE0 = 0;
   985D               CBI     0x0B, 0x05


Сергей, Артём, прошу прощения за ложную тревогу. (Ведь говаривала мне мама - "Сначала выспись!" sm.gif)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 15:57
Рейтинг@Mail.ru


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