danrok Napisano Lipiec 9, 2010 Udostępnij Napisano Lipiec 9, 2010 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
Elvis Lipiec 9, 2010 Udostępnij Lipiec 9, 2010 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}" );
danrok Lipiec 9, 2010 Autor tematu Udostępnij Lipiec 9, 2010 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ć..
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »