[an error occurred while processing this directive]
|
День добрый.
Столкнулся с проблемой, связанную с тем, что надо написать процедуры на ассемблере, которые в свою очередь надо вызывать из С кода.
Как не бился, не видит функции написанные на ASM.
Делал так:
asm.s :
.extern InitRoutine
.extern DoneRoutine
InitRoutine:
mov R12, PC
stdbm SP!, {R12, LR}
...
...
DoneRoutine:
mov R12, PC
...
Затем в asm.h
extern int InitRoutine(int param1, int param2);
extern int DoneRoutine(int param1, int param2);
А в основной программе делаю:
#include "asm.h"
int main(void)
{
InitRoutine(1,2);
....
DoneRoutine(3,4);
....
}
Линкер выдает ошибку:
undefined reference to `InitRoutine()'
Как можно заставить увидеть мою функцию?
asm(""); - не подходит.
E-mail: info@telesys.ru