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

 
 
> Как прочитать регистр
_Артём_
сообщение Jan 27 2012, 20:33
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Требуется прочитать значение регистра (или нескольких регистров).
Процессор: xmega256A3.
Пробовал так:
Код
// асм-файл
GetR14R15:
    mov     R16, R14
    mov     R17, R15
    ret
// С++-файл
extern "C" {
    unsigned short GetR14R15();
};

// программа
     unsigned short tmp=GetR14R15();


Работает, но есть лишние действия - call/ret.
Можно ли сделать asm-inline функцию?

Update: забыл указать компилятор. IAR AVR.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
SasaVitebsk
сообщение Jan 28 2012, 17:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Не могу утверждать, что это работает для xmega, но для обычных AVR всё значительно проще ... biggrin.gif
В опции проекта выбирите C/C++ compiler//Code//Register utilization//2 [R14..R15]
Далее объявите в проекте

__regvar __no_init uint16_t crc @14;

ну и дальше просто обращайтесь к переменной ...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jan 28 2012, 20:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(SasaVitebsk @ Jan 28 2012, 19:45) *
Не могу утверждать, что это работает для xmega, но для обычных AVR всё значительно проще ... biggrin.gif

Тоже не буду утверждать (может что-то не учёл), но похоже не работает.

UPD. Ошибся, работать будет (симулятор AVRStudio ввёл меня в заблуждение - ерунду отбразил)
Прикрепленное изображение


Цитата(SasaVitebsk @ Jan 28 2012, 19:45) *
В опции проекта выбирите C/C++ compiler//Code//Register utilization//2 [R14..R15]
Далее объявите в проекте

__regvar __no_init uint16_t crc @14;

ну и дальше просто обращайтесь к переменной ...

На MegaAVR это работало, но доступны таким образом не все регистры, а только R4-R15. F хотелось бы чтоб все (lock тоже не устраивает).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 17:56
Рейтинг@Mail.ru


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