kto mi przepisze na asembler?

Dec 24, 2005 9 Replies

Szukam kogos, kto przepisze funkcje napisana w C na asembler i przetestuje ja. Funkcja napisana jest w GCC na mikrokontroler Atmega32. Niestety brak czasu nie pozwala mi na to bym zrobil to sam. Mam nadzieje, ze znajde tutaj kogos kto zrobi to szybko i za niewielkie pieniadze. Pozdrawiam



Jacek M.



Przepraszam ale zapomnialem podac funkcji w C do przepisania. Oto ona:

#define DI (PIND & (1<<PIND5)) // data input #define CE (PIND & (1<<PIND2)) // chip enable #define CL (PIND & (1<<PIND3)) // clock line

volatile register uchar stanCE, // detekuje wartosc na PD3 oldStanCE=1, stanCL, oldStanCL=1;

void czytaj(uchar* ramkiPtr) { uchar *ramkiPtr, *ramkiPtrBuf=ramkiPtr;

do { oldStanCL=stanCL; do // czeka na narastajace zbocze sygnalu CE { oldStanCE=stanCE; stanCE=(uchar)CE; }while(stanCE>oldStanCE);

do // chip enable { stanCL=(uchar)(PIND & (1<<PIND3)); // czytanie linii portu CL

if(stanCL > oldStanCL) // detekcja narastajacego zbocza CL { *ramkiPtr++=DI; } oldStanCL=stanCL; }while(CE); // chip enable

if((ramkiPtr-ramkiPtrBuf)!=0x50) // jesli rekord jest o innej dlugosci powtorz odczyt rekordu { ramkiPtr = ramkiPtrBuf; // odtworzenie wskaznika bufora odebranych ramek } }while((uchar)(ramkiPtr-ramkiPtrBuf)!=(uchar)0x50); // by odczytac caly rekord } Pozdrawiam

Jacek M.

Jacek M. napisal(a):

Poszukaj w listingach, bedacych wynikiem dzialania kompilatora. Tam powinien byc kod assemblerowy ;--). Bez funkcji bibliotecznych, co prtawda. Ale moze nic z tego nie zostalo uzyte.

Użytkownik Jacek M. napisał:

[ciach...] Wydaje mi się, że już gdzies widziałem ten kawałek kodu w C ;-) i podałem w zasadzie gotowe rozwiązanie. Problem w tym, że napisałem to w assemblerze, a Kolega potrzebuje tego w postaci funkcji assemblerowej strawnej dla AVRGCC.

Pozdrawiam Grzegorz

Tato! A Marcin powiedzia³, ¿e jego tata powiedzia³, ¿e *Jacek M.* napisa³(a):

Przecie¿ ka¿dy (no mo¿e prawie ka¿dy) kompilator najpierw "t³umaczy" program na assembler przed kompilacj±. Jak nic nie znajdziesz to zdissasembluj program wynikowy to bêdziesz mia³ assembler :P

Juz kilkakrotnie chcialem sie z Toba Grzesiek skontaktowac i w zaden sposob nie moga. Mozesz sie odezwac do mnie na snipped-for-privacy@poczta.onet.pl? Pozdrawiam

Jacek M.

Nie trzeba. Wiem, ze mozna to zobaczyc w pliku *.lss.

Jacek M.

Użytkownik Jacek M. napisał:

Trza tylko usunąć to co niepotrzebne z adresu ;-)

gcc -S

wygeneruje Ci plik w asemblerze...

Mogê Ci powy¿sz± komendê odp³atnie wykonaæ, czemu nie... ;-)))

Pozdrawiam Piotr Wyderski

A mozna zapytac z czym to wspoldziala i jak szybko nastepuje zmiana stanow? Bo tak na pierwszy rzut oka to chyba jednak za duzo wymagasz.

to w koncu czym jest ramkiPtr - zmienna lokalna czy parametrem ?

zamiast

wystaczy ze wpiszesz while( !CE) ;

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required