Kompilator C: SDCC

Oct 23, 2004 19 Replies

Tworz±c firmware na mikrokontroler Atmela w jêzyku C doszed³em do etapu, w którym mój kod jest wiekszy niz 2K co spowodowa³o, ¿e darmowa wersja kompilatora C firmy Keil nie chce ju¿ mi go skompilowaæ. Zatem próbujê przestawiæ siê na darmowy kompilator SDCC. Niestety nie wiem jak z nim pracowaæ. Próbujê skompilowaæ, zlinkowaæ ... ale bez powodzenia. Pytanie: Jak skompilowaæ np. pliki: Plik1.c + Plik2.h + at89S8252.h i otrzymaæ plik wynikowy w postaci INTELHEX? Program jest pisany na 89S8252.



formatting link
pzdr. j.

Wszystko by³o by fajnie gdyby nie wyskakiwa³ b³±d: 'fopen' failed on file 'Plik.c' . Nawet je¶li w pliku jest tylko funkcja main() wyskakuje ten sam b³±d :(

A probowales podac pelna sciezke do pliku? Kompilujesz pod windowsem czy linuksem? Czy kompilator i plik zrodlowy sa w roznych katalogach czy w tym samym? Przegladajac instrukcje zauwazylem ze w niektorych sytuacjach sdcc wymaga podania pelnej sciezki (lame), wiec moze i tutaj wykrzacza sie na tym samym.

j.

..

Witam. Tu leży darmowe IDE do SDCC i ASM dla MCS-51.

formatting link
Pozdrawiam. Piotrek Sz.

Piotrek Sz. snipped-for-privacy@gazeta.pl napisał(a):

Adres bez "Pozdrawiam" oczywiście :) Często się "dokleja" do linków :-)

P.Sz.

Wkoñcu co¶ posz³o. WIELKIE DZIÊKI! Mia³em problem z podaniem ¶cie¿ki bezwzglêdnej do pliku Plik.c. SDCC zainstalowa³em w C:\Program Files\SDCC\ i nie mog³em sobie poradziæ ze spacj± w wyrazeniu Program(spacja)Files :)). Odinstalowa³em kompilator i zainstalowa³em bezpo¶rednio na C:\SDCC\. Tak na marginesie jak podac sciezkê do pliku gdy w tej ¶cie¿ce znajduje siê spacja? Próbowa³em C:\Program~\SDCC\ ale jako¶ nie chcia³o dzia³aæ.

Zwykle ujecie w cudzyslow pomagalo. Probowales "c:/program files/..." ?

j.

¦ci±gn±³em ale jeszcze nie rozpakowa³em. Dziêki.

U¿ytkownik "I:D" snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:cldtlv$abs$ snipped-for-privacy@news.onet.pl...

jesli satysfakcjonuje cie takie ograniczenie :

The Product Evaluation Kit is a complete working copy of the Advanced Development System only limited by the size of the code that can be created:

1024 Byte Assembly sourced objects 2048 Byte C language sourced objects 4096 Absolute final object file

To sprawdz

formatting link

Najwyrazniej on go nawet nie potrafi otworzyc, a do zawartosci nawet nie spoglada. Sugerowalbym sprawdzic:

- czy plik jest we wlasciwym katalogu,

- zamknac edytor - moze blokuje dostep,

- duze i male litery - moze w tym problem ?

- czy ten plik nie nazywa sie np Plik.c.txt

J.

o dziwo MS pomyslal i daje sie podac w cudzyslowach, w tym np tak smiesznie: C:\"Program Files"\SDCC\

A ten katalog zazwyczaj zwie sie PROGRA~1

J.

czy za pomoc± tego ide da sie zbudowac projekt skladaj±cy siê z kilku plików bo jako¶ mi nie wychodzi. kazdy plik kompiluje sie oddzielnie. tak jakby brakowa³o linkowania. czy komus sie to uda³o? pozdrawiam s³awek

Okaza³o siê, ¿e b³êdem by³o podawanie ¶cie¿ki wzglêdnej do pliku. B³êdne jest Plik.c, powinno byæ C:\SDCC\Plik.c. Niby proste i od sprawdzenia tego powinien zacz±æ, ale niestety przys³owiowe "Pod latarni± zawsze najciemniej" powinno siê staæ moim mottem ¿yciowym :))

SDCC jest darmowy (dziêki zapaleñcom z g³ow± na karku) i nie ma ograniczeñ, wiêc powy¿szy link odpada. Wad±, jak czyta³em w recenzjach, jest brak IDE, jednak z pomoc± przyszed³ Piotrek Sz. i jego link (4 posty wy¿ej). Polecam, choæ na kompie 400MHz scroll programu trochê nie nad±¿a. Do pisania programów w C mo¿na najprawdopodobniej wykorzystaæ tak¿e VisualStudio z ustawieniem kompilatora i linkera na SDCC. Jeszcze tego nie próbowa³em, ale wydaje siê to byæ b.dobrym rozwi±zaniem (dla posiadaczy Visuala).

W³a¶nie tego chcia³em spróbowaæ, ale nie wiem jak wykorzystaæ w VisualC++ kompilator SDCC zamiast standardowego. Szuka³em w Project: Settings... ale bez skutku. Czy ju¿ kto¶ tego próbowa³?? Mile widziane twierdz±ce posty :)

Proponuje jeszcze jedno rozwiązanie :-)

formatting link

Super edytor programisty i jeśli się go umiejętnie skonfiguruje to ...cacuszko :) Można "latać" po całym kodzie tzn. w programie głównym odwołujemy się np. do procedury Delay_h ,która to znajduje w innym pliku CTRL+ENTER i już mamy otwarty plik z w/w procedurą i kursor na jaj początku,a po sprawdzeniu co tam jest lub ewentualnej korekcie ALT+ENTER i jesteśmy w miejscu z którego wyskoczyliśmy.Pliki muszą znajdować się w tym samym katalogu lub projekcie(chyba).

To tyle :)

Pzdr. Piotrek Sz.

Dziêki. Napewno przetestujê. Choæ ca³y czas my¶lê o pe³nej wersji Keil uVision :))

dostêpna na eMule - taki ¿art, sory...

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required