PIC vs ATMEL #2

Gyorgy Varga gylab at freestart.hu
Fri Feb 13 10:05:14 CET 2004


Hello VF,

Friday, February 13, 2004, 2:26:06 AM-kor irtad:

VF> Thus spake Gyorgy Varga <gylab at freestart.hu>:

VF> :)) Jo, akkor a C forditok fele nem C fordito, a masik fele pedig
VF> nem kompatibilis ezekkel. Nem erdekel mi a gond, mert engem nem igazan
VF> erint, csak a tenyeket kozlom...

Akkor viszont masrol beszelunk. Eddig C-rol volt szo. Pl. a gcc az
ANSI, a Microsoft C-nek szinten van ansi-c kapcsoloja, a ht picc es
picc18 szinten az. Sot a borland C is kepes ANSI forditasra.
Szerintem a te problemad foleg az, hogy a kod, amit forditani akartal
nem ansi, hanem valami specifikus dolog. Akkor a forrassal van a baj.
Egyebkent szokas az (en is igy csinalom), hogy a fordito/processzor
specifikus dolgok egy kulon headerben vannak, es mindig az adott kornyezete't
kell hasznalni. pl. az int hossza valtozik a processzortol fuggoen,
ezert ha fizikai muveletet akarok csinalni, akkor
int8/uint8/int16/uint16 tipusokat hasznalok, ha logikai, akkor
int/long. Igy aztan legfeljebb azt a headert kell modositani, ami
leirja, hogy az int16 most short/int/long tipus lenne. Termeszetesen
ez csak a procitol fugg, ezert meg mas procira portolni is csak ennyi.

>> Mit akarsz preprocesszalni? A C az C. Minden C forditonak resze a
>> preprocesszor. Ezert tudsz makrokat is hasznalni.

VF> Ehhez speciel legalabb LISP kene, mert sztringeket kell atkonvertalni.
VF> Vagy tulajdonkeppen az is eleg lenne, ha lenne if..then a prepocesszorban.
Ismered te a C-t? A #if, #else, #endif mire valo? Ez ANSI.


VF> Van? En nem lattam soha hasznalni, de nem nagyon ertek hozza...
Akkor ne akarj mar meggyozni. Vegyel elo egy _normalisan_ megirt
forrast, es _biztosan_ fogsz talalni benne.


VF> Tulajdonkeppen a #if jo lenne, ha a makro behelyettesitese _utan_
VF> fordulna le, es az argumentumaba behelyettesitodne a makro egyik
VF> parametere. Ha van ra megoldas, aruljatok el, nekem nagyon ugy tunik,
VF> hogy nincs...
Vegyel egy C tankonyvet. Abban le vagyon irva. A #if parametere
termeszetesen lehet makro, sot tulajdonkeppen en meg csak makrot
talaltam ott.

>> Es ez nem elony? Hat azert en nem hobbibol dolgozom. Amit megtalalok,
>> es biztosan jo is, azt igenis felhasznalom.

VF> En is. De ennek felelotlen hasznalata nem vezet jora.
Azert az autod felelotlen hasznalata sem vezet jora.


VF> Bocsi a szemelyeskedesert, mar ugy is mindegy, de itt van pl Arnold
VF> peldaja. Felhasznal a librarybol egy relativ komplex fuggvenyt,
VF> valami hiba tortenik, jaj istenem mit csinaljak segitsetek.
Mert nem olvasta el a leirast. O pont abba a hibaba esett egy
pillanatra, amiben te elsz: azt hitte, hogy tudja.
Mellesleg a scanf a standard lib resze, tehat szinten szabvany.
Egyebkent a lista pontosan azert van, hogy segitsunk egymasnak, akkor
is, ha hibazott. Ha mindeniki tokeletes lenne es csak osztana az eszt,
akkor nem kellene ez a lista sem.


VF> Meg arra sem veszi a faradsagot, hogy belenezzen a felhasznalt
VF> forrasba, vagy egyszer vegigfuttassa rajta a debuggert, pedig azzal
VF> a kozel egy milas forditoval nehany kattintas az egesz...
A gcc _ingyenes_. Es csak fordit, mint az osszes tobbi fordito. A
debugger megint mas. Szerintem ha mashogy nem ment volna, akkor
megdebuggolta volna a scanf fuggvenyt is, es kiderult volna a hibaja.


VF> Sokan dolgoznak igy. Jo ez? Nezzetek meg a sokmillio hibas programot...
VF> Ha en ilyet csinalnek, valakirol hamis diagnozist allit fel a kutyum,
VF> vegy eles meresnel lefagy, akkor vegem. Speciel abban nincs is
VF> egyetlen sor kod sem, amit ne en vagy a fonokom irtunk volna...
Es ha elut a villamos, akkor lehet bezarni a ceget, kidobni a teljes
fejlesztest, Jo ez?
A kovetkezo mondatodat nem nagyon ertem. Ezek szerint te biztonsagi
szoftvert irsz? Az megint egy mas teszta. Akkor megkerdeznem hogy a
assemblered tesztelt? A programod tesztelt? (nem a hosszas probalgatas
modeszerere gondoltam...) A C-hez legalabb vannak tesztelo/analizalo
eszkozok. Lasd pl. lint. Ezek nem is engednek olyan kodot, amit nem
ertenek (pl. assembly utasitas). Sot azt is megkerdezem, hogy mivel
teszteled? A program (ami ugye meg nem tesztelt) altal adott
informaciokkal? Az ugy nem sokat er.



>>> Aki igenyes munkat akar kiadni a kezebol, az elobb-utobb a kritikus
>>> helyeken ugy is belenyul asm-ben...
>> En nem tartozom az igenyesek taboraba ezek szerint. Nem szoktam ASM-et
>> hasznalni. Valahogy mindig szokott sikerulni C-ben. ANSI-C-ben.

VF> Es nyilvan gyors is ugye?
Igen, sot jol tesztelheto/konfiguralhato/portolhato, sot a magam altal
irt konyvtarak is ragyogoan hasznalhatok mas kornyezetben. Azert annyi
elonyom van, hogy azt hiszem ismerem a C-t. Igy konnyebb gyors es jo
kodot irni. :)

-- 
Üdv,
 Gyorgy Varga
GyLAB BT.



More information about the Elektro mailing list