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

 
 
> Assembler в CrossWorks 1.5, Как вставить функции, написанные на ассемблере в код C.
SimpleSoft
сообщение Jan 26 2006, 11:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442



День добрый.
Столкнулся с проблемой, связанную с тем, что надо написать процедуры на ассемблере, которые в свою очередь надо вызывать из С кода.
Как не бился, не видит функции написанные на 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()'

Как можно заставить увидеть мою функцию?
Go to the top of the page
 
+Quote Post



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

 


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


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