Skocz do zawartości
Zaloguj się, aby obserwować  
danrok

ARM Wstawki do asemblera CrossWorks

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

Udostępnij ten post


Link to post
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}" );			

Udostępnij ten post


Link to post
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ć..

Udostępnij ten post


Link to post
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!

Gość
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.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...