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

 
 
> Ассемблерные вставки в IAR-е, Видимость переменных
Oleg_IT
сообщение Oct 31 2005, 12:11
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



В ассемблерных вставках IAR не видит ни имена портов, ни имена переменных. Что нужно сделать, что бы это заработало?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
solidreg
сообщение Oct 31 2005, 12:55
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 24-10-05
Пользователь №: 10 056



Я просто адресс ставляю в место константы. Иначе я не смог обойте этого.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 31 2005, 13:08
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(solidreg @ Oct 31 2005, 16:55)
Я просто адресс ставляю в место константы. Иначе я не смог обойте этого.
*


???? Адрес порта я ещё понимаю, но адрес переменной. Как я узнаю, по какому адресу компилятор данную переменную расположил? Я понял так, что мне в код конкретное число ставить нужно, т.е. адрес? Или не так?
Go to the top of the page
 
+Quote Post
solidreg
сообщение Oct 31 2005, 16:17
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 24-10-05
Пользователь №: 10 056



Цитата(Oleg_IT @ Oct 31 2005, 16:08)
???? Адрес порта я ещё понимаю, но адрес переменной. Как я узнаю, по какому адресу компилятор данную переменную расположил?
*


Если работаете с регистрами (портами) - да, укажите адрес. А переменных из С програмы вы не сможете включить в ASM.
Обойти это можно обявляя новую функцию с параметрами, и эту функцию пишить ASM. Параметры функции (переменные от С) передаётся в регистрах CPU. Какие параметры и в каких регистрах передаётся смотрите в PDF'e IAR'a.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Nov 1 2005, 11:58
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



С функциями проще. Но у меня прерывания. Как с ними быть?
Обработчик на С:
#pragma vector = USART_RXC_vect
__interrupt void UsartReceive(void)
{//4 cycles to jmp in IRQ_Handler
__asm{
"PUSH R7 \n"
"IN R7,UCSRB \n"
"PUSH R29 \n"
"IN R29,UCSRA \n"
"PUSH R6 \n"
"PUSH R5 \n"
………………………….
}
}
Как тут быть с переменными и именами портов? Помогите, не бросайте новичка.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:10
Рейтинг@Mail.ru


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