[ developer94 @ 14.07.2011. 21:34 ] @
Posto ne vidim preteranu aktivnost na Embedded Sistemi delu foruma, nadam se da nije pogresno sto ovo ovde pisem.

Zanima me da li neko zna kako se u CCS PCH kompajleru kompiluje vise od jednog source fajla preko komandne linije?
Da li je isti nacin kao i za gcc? To jest, da li kompilujem svaki source posebno, i onda poredjam sve od jednom?
Primera radi sa gcc-om bih uradio ovako nesto (u makefile-u):
Code:

all: gcc main.c test_lib1.c test_lib2.c -o test

Verovatno sam i nesto omasio u primer makefile-u, ali neka ga tu ukoliko nekome nije jasno na sta ciljam, samo me naravno ispravite :)
Ovako nesto ne mogu da primenim posto se parametri naravno razlikuju (cak sta vise po CCS dokumentaciji, CCS ni ne nudi opciju nazivanja i lokacije smestanja izlaznog fajla - bar ja nisam uspeo da nadjem).

Da li neko zna gde mogu da dodjem do potpune dokumentacije CCSC command line parametara? Jedino sta sam uspeo da nadjem po netu je isti help fajl koji dobijem kada pozovem 'CCSC /?'...

[Ovu poruku je menjao developer94 dana 14.07.2011. u 23:30 GMT+1]
[ bogdan.kecman @ 14.07.2011. 21:51 ] @
CCS ne ume da radi sa "bibliotekama" tako da hex mozes da izgenerises SAMO IZ JEDNOG fajla (tj mozes da imas include koji ubacuje druge fajlove ali klasicna varijanta sa 5 C fajlova od kojih pravis obj pa onda to linkujes sa CCS ne radi)
[ developer94 @ 14.07.2011. 21:56 ] @
Da li to znaci da je onda dovoljno da samo includujem hedere i source fajlove direktno u main.c ili sta vec, a potom kompajliram samo main.c?

EDIT:
Nalazio sam na netu da su ljudi pitali za ovako nesto, samo niko nije ponudio primere, a dodatna otezavajuca okolnost je da pokusavam da ga nateram da radi sa MPLAB X, pa moram preko makefile-a da radim.

EDIT #2:
Mogu li ikako da podesim gde ce da mi back izlazni fajl i pod kojim imenom? To jos uvek nisam nasao kako...

EDIT #3 (resenje):
Resio konacno... Moze vise fajlova, bas kako si rekao - includujem ih u glavni, i samo glavni kompajliram.
Command line koji sam koristio je:
Code:
ccsc main.c +FH +DF +Y9 +EA +LNlst +T +A +M +J +ES +PE +OBhex +P #__18F452=TRUE

Problem je bio u stvari u tome sto nisam imao +P te nisam video gresku u kodu (u svaki dodatni source fajl izgleda da mora da se dodaje #use - verovatno i #fuses). Sve u svemu, sada radi, hvala!

[Ovu poruku je menjao developer94 dana 14.07.2011. u 23:29 GMT+1]
[ bogdan.kecman @ 14.07.2011. 22:49 ] @
ne da je dovoljno nego je to jedini moguci nacin ...

dakle ide nesto tipa

Code:


#include <lcd.h>
#include <lcd.c>
#include <24cxx.c>
#include <ds18x20.c>

void main(){
...



i onda samo kompajliras main.c ... to je JEDINI nacin na koji ccs radi .. dakle "program" je uvek samo jedan fajl, ccs nema linker

za output koliko ja znam ne moze, mozes da biras "kog tipa je output" (16bitni hex, 8bitni hex, binary, coff ..) ali ne i gde ce da bude, uvek ce biti na istom mestu gde i c fajl. Cak i ako pozoves ccsc.exe iz nekog drugog direktorijuma on ce opet da kreira hex tamo gde je c

ja npr koristim: ccsc +Y9 +EA -D -T -A -L -P -M -J -Z +STDOUT +O8 fajl.c

elem, posto znas da ce napraviti fajl.hex onda ga mozes muvnuti tamo de ti treba

dalje, ako sam te ja svatio ti hoces da ga koristis iz MPLAB-a? zasto se cimas sa makefajlovima i slicno, samo poteraj " ccsc.exe +SETUP " i on ce da se instalira u mplab, onda pokrenes mplab, novi projekat, odaberes pic, kada te pita za toolchain odaberes CCSC/PICC i to je to .. dalje sve radis direkt iz mplab-a (kompajliras, debagiras ...) .. mada ja iskreno mplab 8.x ne podnosim tako da koristim CCSC gui kada pravim za 16F, gui je odlican, brz, ima super opcije.. (za 18F i vece koristim MPLABX i C18/C30/C32)
[ bogdan.kecman @ 14.07.2011. 22:53 ] @
Citat:
developer94:Problem je bio u stvari u tome sto nisam imao +P te nisam video gresku u kodu (u svaki dodatni source fajl izgleda da mora da se dodaje #use - verovatno i #fuses). Sve u svemu, sada


nikako

fuses ti treba samo na jednom mestu, nikako u svakom fajlu koji inkludujes.

on sta uradi je (isto sto i svaki kompajler) svaki taj include ti je bukvalno kao da si cut/paste celog fajla umesto tog include-a. dakle ako u svakom fajlu imas fuse to znaci da u onome sto on kompajlira imas 10 puta isti fuse .. a to ne da radi kako treba

+P je zgodno ako ne radis sa makefile da vidis sta se desilo, mnogo iskusnije je samo da iscitas .err fajl

sad vidim da hoces da ga koristis iz mplabx .. mplabx dolazi vec sa ccsc-om koji radi ?! ne kontam sta budzis?
[ developer94 @ 14.07.2011. 23:33 ] @
Moja greska sto sam neosnovano rekao da fuses treba da se prepisuje - mada cini mi se da sam rekao verovatno. Sve u svemu hvala na informaciji!
U medjuvremenu sam proucio malo detaljnije sta sve mogu da uradim sa makefile-om (idalje ne dovoljno detaljno, al' posluzice zasad), tako da mi je @mv adekvatna zamena, sa obzirom da se uvek pravi hex u istom folderu pod istim imenom.

Inace, sto se X-a tice, poznato mi je da podrzava (ne znam da li dolazi sa istim - koliko ja znam CCS treba platiti prvo?). Elem, nakon instalacije CCS-a, MPLAB ga detektuje, i izlistava, medjutim problem je sto dodaje neke artifakte na poziv za kompilaciju kao recimo out=<putanja> i sl. Takodje svaki fajl koji dodam u projekat se dodaje u njegov makefile i kompiluje, sto CCS ne prihvata.
A uz sve to, ne vidim zasto je lose imati malo veci nivo kontrole nad kompajliranjem sa obzirom na stanje u kom se MPLAB X trenutno nalazi (jasno mi je da je u beta fazi). Da znam malo bolje da radim sa podesivim okruzenjima kao Eclipse i NetBeans, ne bi bilo potrebe za ovakvim cimom (ili bih bar sve vec lakse skrpio), ali posto to nije slucaj moram ovako da se zlopatim :/
[ bogdan.kecman @ 15.07.2011. 00:32 ] @
kao sto rekoh ja mplabx koristim samo sa mikroc i sa njima radi super. uz mplabx stize hitech c, sorry, ne dolazi picc, picc ume da se integrise samo u mplab 8.x moja greska ..

nego, zasto ne koristis standardni picc ide? meni je skroz ok kako on radi.. ja sam kupio picc pre nekoliko godina (uz neko ftdi razvojno okruzenje, samo za 16f) i tada sam se navikao na njegov ide skroz lepo radi, sada vidim da su izbacili novu verziju koja ima posten cli + ima cli i za linux, ali mi je na zalost upgrade vazio samo godinu dana :(
[ developer94 @ 15.07.2011. 07:47 ] @
Standardni PCW je... (ako mislimo na istu stvar) malo tuga za rad. Osecam se kao da u china shop-u merkam kopiju necega i vidim da to nije to. Dovoljno mi je tesko palo sto nemam intellisense i slicne stvari sa obzirom da pretezno radim desktop aplikacije sa VS-om.

E sad, verovatno si radio sa starijim PCW ide-om - ako je to ftdi okruzenje, nisam bas razumeo najbolje sta koristis (ne znam kad je izasao ovaj novi, ali iz nekog razloga uopste ne prija ni za oko ni za rad - cak i mplab 4 je bio keva na spram ovoga :/). Mozda previse tancham, ali ako cu da kucam u necemu, bar bih voleo da uzivam u isto vreme, a NetBeans ispunjava uslove.

A sto se tice postenog cli-ja - mogli su i postenije da ga urade :P Jes' da ne znam kakav je bio ranije, ali bar dokumentaciju na vidnije mesto da su okacili...

Inace, odosmo previse offtopic. Ne znam kolika je ovde tolerancija tako necega, ali bitno da je resenje nadjeno.

Al ae', ako neko zna imam jos jednu gresku (ne fatalnu doduse): Nakon kompilovanja kaze <putanja projekta>/<ime projekta>.X.production.cof does not exist or is not an executable. Dialog prompt koji mi izbacuje ima samo ok, i nista se ne buni dalje, ali bilo bi lepo i tome da nadjem leka.
[ bogdan.kecman @ 15.07.2011. 11:58 ] @
dodaj +DF da ti izgenerise .cof fajl i onda ga muvni gde ti treba
[ developer94 @ 15.07.2011. 20:49 ] @
Cini mi se da sam vec stavio, doduse nisam na svom kompu trenutno pa ne mogu da proverim. Inace, gde treba da muvnem .cof?
[ bogdan.kecman @ 16.07.2011. 08:11 ] @
pogledaj gde ga trazi, uglavnom se cof nalazi na istom mestu gde i hex, mada moze da bude tamo sa obj-ovima, no obrati paznju da mplabx ako se dobro secam trazi .cof koji se ne zove isto kao projekat.cof nego ima neke "tripove"