Skocz do zawartości

ARM Wstawki do asemblera CrossWorks


danrok

Pomocna odpowiedź

Witam,
czy ma ktoś jakiś opis, który pokazuje jak pisać wstawki w asemblerze do C w CrossWorks?

Próbowałem stworzyć plik *.s i dorzucić tam takie coś:

   .text  32
   global func
func:
   add    r0, r0, r0
   bx     lr

niestety dostaję błąd:

Error: bad instruction `global func'.

Próbowałem też pisać w instrukcjach __asm__(""), ale także dostaję różne błędy o

nierozpoznanych komendach. Może trzeba jakąś magiczną opcję w CrossWorks odpalić?

Z góry dzięki

Link do komentarza
Share on other sites

CrossStudio używa gcc, więc możesz spróbować takiej składni:

asm volatile ( 
	"STMDB	SP!, {R0}		\n"
	"MRS	R0, CPSR		\n"	
	"BIC	R0, R0, #0xC0	\n"	
	"MSR	CPSR, R0		\n"	
	"LDMIA	SP!, {R0}" );			
Link do komentarza
Share on other sites

Coś chyba mam źle skonfigurowane, próbowałem pisać tak jak mi podałeś i niby jest ok, ale

CrossWorks ciągle krzyczy, że procesor STM32F103VE obsługuje jedynie instrukcję Thumb,

więc:

Error: selected processor does not support requested special purpose register -- `mrs R0,CPSR'

Ale ok, to jedna sprawa. Inna sprawa, to taka, że chodzi mi o pisanie wstawek w postaci

makr.

Mam np makro:

#define fx_float(a) ( a / (float)(1<

i chciałbym je przerobić na wstawkę asemblerową. Wie ktoś jak odnosić się do argumentów?

Widziałem, że należy wstawiać je po dwukropku, jednak skopiowany przykład z książki ARM

Developer's Guide wykrzacza błędy, jakoby instrukcje były nieobsługiwane..

EDIT:

Wstawiając tę samą funkcję co dałeś w poście wyżej do programu i zmieniając

Instruction Set z Thumb do ARM, dostaje komunikat:

target CPU does not support ARM mode

mimo, ze w dokumentaci: http://www.st.com/mcu/download2.php?file=14611.pdf&info=STM32F103VE%20Datasheet%20STM32F103xC-D-E&url=http://www.st.com/stonline/products/literature/ds/14611.pdf nie widzę informacji o tym, że obsługuje jedynie thumb. Może ktoś to trochę wyjaśnić? Zaczynam

się gubić..

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.