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

 
 
> Виртуальные регистры (vregs) в inline asm под IAR STM8, Компилятор их не понимает
strvl
сообщение Jun 28 2016, 12:37
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 28-06-16
Пользователь №: 92 360



Делаю проект на сях в IAR под stm8l. Потребовалось сделать в паре мест ассемблеровские вставки. В документе «IAR C/C++ Development Guide» рассказывается о виртуальных регистрах (?b0, ?b1, …, ?w0, …, ?l0, …). В них, в частности, передаются аргументы функции, их же рекомендовано использовать в качестве локальных переменных. Вопрос: КАК заставить сишный компилятор увидеть их внутри ассемблеровской вставки? Ругается «undefined symbol: ?b0». В том документе написано, что их объявление содержится в файле vregs.inc, но файл этот ассемблеровский, к сишному файлу его не подключить (или можно?). Директиву ассемблера EXTERN ?b0, обёрнутую в блок asm(“”), компилятор тоже не понимает – «Directive not supported by inline assembler».
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Jun 28 2016, 12:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Не надо мудрить. Те же ?b0, ?b1 - это просто байты ОЗУ с адресами 0 и 1. Вот и используйте в ассемблерной вставке эти адреса напрямую.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:37
Рейтинг@Mail.ru


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