Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Mixing C and Assembler
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Olegovich
Всё, я сдаюсь, господа!
Решил замесить ассемблер с Си под IAR 3.20 для AVR.
И не работает, никак не пойму, в чем дело.
Делаю следующим образом:

//----------------------------------------
Файл СИ:
//----------------------------------------
#pragma language=extended
#include <inavr.h>
#include <iom128.h>
#include <D:\CProjects\m128jtag\ass.asm>

//декларируем ассемблерную функцию
extern void asmfunc(void);

void main(void)
{
asmfunc();
}
//----------------------------------------
Файл ass.asm:
//----------------------------------------
NAME asmfunc
#include <iom128.h>
PUBLIC asmfunc
RSEG CODE
asmfunc:
in R16,PIND
swap R16
out PORTB,R16
ret
END
//----------------------------------------

И компилятор пишет - то "identifier NAME undeclared", то функция неправильно
объявлена, то ещё что-нить в этом духе. Отдельно ассемблерный файл компиллируется нормально.
В чем дело? Ведь делаю всё как в их примере...
KRS
Надо убрать строчку
#include <D:\CProjects\m128jtag\ass.asm>
а файл просто к проекту подцепить
естественно компилер ругается, он же С а не ассемблер wink.gif
ассемблер надо ассемблером компилить, а потом уж линковать их вместе
Olegovich
Цитата(KRS @ Mar 4 2005, 12:22)
Надо убрать строчку
#include <D:\CProjects\m128jtag\ass.asm>
а файл просто к проекту подцепить
естественно компилер ругается, он же С а не ассемблер wink.gif
ассемблер надо ассемблером компилить, а потом уж линковать их вместе
*


Так и знал, что из-за фигни парился!
smile3046.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.