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

 
 
> Присвоить переменной значение из регистра РОН, AT91SAM7S64, IAR, C++
RA3PKJ
сообщение Aug 8 2010, 11:13
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 5-08-10
Пользователь №: 58 773



Как начинающий заткнулся казалось бы на простой вещи.
Код
static inline unsigned hw_get_cpsr(void)
{
    unsigned long retval;
    asm ("mrs  r0, cpsr");
    return retval;
}

Надо присвоить переменной retval значение из регистра общего назначения r0, который фигурирует в ассемблерной вставке.
Т.е. retval = ?????????????
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Aug 8 2010, 13:12
Сообщение #2


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

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



QUOTE (RA3PKJ @ Aug 8 2010, 14:41) *
IAR для ARM. В заголовке указан.


Пардон. Не заметил.

QUOTE (sonycman @ Aug 8 2010, 15:34) *
Вообще то Ваша функция называется get_cpsr, и возвращает значение регистра CPSR, а не R0.
Вот это чем не устраивает?
CODE
unsigned long cpsr = __get_CPSR();


Это - правильный вариант для IAR'а. Даже более верный, нежели отдельный модуль на асме. Решение типа asm("чего-то") неверно в принципе.


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



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

 


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


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