Fórum témák

» Több friss téma
Fórum » PIC program HEX-ből C-be történő konverziója
Lapozás: OK   1 / 1
(#) Jossz hozzászólása Máj 2, 2008 /
 
Tud-e valaki olyan programról, amely PIC HEX file-t, vagy PIC ASM file-t konvertál valamilyen PIC C nyelvre. Olyasmire gondolok, mint az ICPROG, csak az HEX-et tud ASM-be konvertálni. Tanuláshoz, tapasztalat-szerzéshez nagyszerű lenne.
(#) Norberto válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Még ha létezik is ilyen program, az eredmény alapján hogy nem fogsz tudni megtanulni C nyelven picit sem, azt le merem fogadni bárhol, bármikor...
(#) Topi válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Egy ASM-ből gép által generált C olyan durva lenne, hogy még egy gyakorlott programozónak is kínszenvedés.
(#) kobold válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Valamelyik témába már tettem fel olyat, ami több-kevesebb sikerrel tudott hex-ből asm kódot generálni, az is elég olvashatatlan maszlag lett, több napot is el lehet tölteni az utólagos csinosítással. Az, hogy akár a bináris állományból, akár az assembly kódból egy C-hez hasonló magasszintű nyelvre egy szoftver átültessen valamit, szerintem kizárt, vagy ha mégis, értékelhetetlen lenne a végeredmény.
Tessék többet tanulni, ne a reverse engineering-en törni a fejünket
(#) Last_Scout válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Hát a gépi kódot vissza alakítani assembly utasításokra, még nem olyan nagy kaland... mert ugyan az van oda leírva, csak krikszkrakszokkal...
De belegondoltál te abba, hogy egy nem túl összetett műveletet hányféle megoldással lehet elvégezni mondjuk c-ben, és hányfélével asm-ben? ez már nem olyan, hogy elolvasod, és lefordítod....
(#) Jossz válasza kobold hozzászólására (») Máj 2, 2008 /
 
Köszönöm a véleményeket és a hasznos tanácsokat is , gondoltam, hogy valami ilyesmi lesz a végeredmény. Az a helyzet egyébként, hogy kb. 1990-óta írok különféle C-ben programokat PC-re. Nemrégiben kezdtem el a PIC témákkal foglalkozni és tulajdonképpen engem ne annyira a C-része érdekel, hanem a PIC-specifikus probléma megoldás része. Valóban a lustaságom motiválta a kérdést, hiszen az ASM-et végig elemezve utána nagy részét meg lehet írni C-ben a feladatnak, de gondoltam, hátha...
(#) gtk válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Ha megy a C , fogsz egy PIC adatlapot , egy C compilert , annak manualjat es kezdheted is.Szerintem.
(#) kobold válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Most láttam, hogy a Chipcad-fórumban is megkérdezted; azért ha valaki okosat ír oda, oszd meg velünk is
Volt egy évfolyamtársam, aki folyamatosan azon mérgelődött, mennyire rossz kódot generál a C fordító. Megírt egy részt először asm-ben, full optimalizálva (pl. 6 utasítás), majd megírta C-ben, lefordította, visszaolvasta, és anyázott, mert az 13 utasítás lett. Főleg a ciklusszervezésen akadt ki...
A lényeg, hogy ha letettem elé egy olyan kódot, amit más írt, elég volt egy indirekt címzés benne ahhoz, hogy feladja az értelmezését, pedig állandóan ilyesmivel túráztatta az agyát.
Nagyon ritkán nézegetem mások kódjait, de szerintem az értelmezés talán leghasznosabb módja a szimulátor, és rengeteg jegyzetelés.
(#) potyo válasza kobold hozzászólására (») Máj 2, 2008 /
 
Idézet:
„Megírt egy részt először asm-ben, full optimalizálva (pl. 6 utasítás), majd megírta C-ben, lefordította, visszaolvasta, és anyázott, mert az 13 utasítás lett.”


Érdemes megnézegetni, hogy mit mire fordít a fordító, és a továbbiakban annak megfelelően programozni.

Pl. lehet így is írni:
  1. c=a>b?15:7

vagy így is:
  1. if (a>b)
  2.         c=15;
  3. else
  4.         c=7;


A C18 fordító a másodikat kb. arra fordítja, amire az ember asm-ben is megírná, az elsőt meg kb. kétszerannyi utasítás felhasználásával készíti el. Mindkettő ugyanazt csinálja, de mégis eltér a kapott kód.
(#) kobold válasza potyo hozzászólására (») Máj 2, 2008 /
 
Én még sosem elemeztem... Igaz, nem is programozok C-ben.
Volt évfolyamtársam "kínlódása" pedig úgy 4-5 éve volt, valószínűleg a compiler-ek is fejlődtek azóta.
(#) Jossz válasza potyo hozzászólására (») Máj 2, 2008 /
 
Teljesen igazad van, arról nem is beszélve, hogy a program megírása után, mondjuk 3 hónappal mennyire emlékszik a programozó abból a "szintaxis-firnyákból" amelyet a programjába belerakott. Szerintem a logikus és egyszerű kód minden szempontból jobban "fogyasztható" a compilernek és az embernek egyaránt.
Kobold, szerintem pedig egyáltalán nem rossz dolog más kódjából tanulni, természetesen alapnak véve azt, hogy nem "lenyúlni" akarja az olvasó a kódot, hanem tanulni belőle. Aztán persze lehet a megszerzett ötleteket felhasználva és továbbfejlesztve szimulátorozni és kommentezni, meg persze fejlesztési naplóba jegyzetelni, én is ezt teszem immár 25 éve. De azt tartom, hogy tanulni folyamatosan kell és senkitől sem szégyen a tudást átvenni.
Természetesen, ha pedig valahol hallok valamilyen megoldásról, akkor tudatni fogom...
(#) kobold válasza Jossz hozzászólására (») Máj 2, 2008 /
 
Ööö... Egyetértek veled, és nem is akartam azt mondani, hogy rossz dolog mások kódját elemezni. Pusztán gyanakvó vagyok egy kicsit (vagy nem kicsit), mert egy csomó téma van ugrókód megfejtése, rádió kikódolása, GPS zavarása és hasonló területeken, és enyhén ferde szemmel nézem, amikor újabb gyanús téma nyílik.
Bocsánatot kérek, ha megsértettelek valamivel, nem volt szándékomban ilyesmi
(#) Jossz válasza kobold hozzászólására (») Máj 2, 2008 /
 
Nincs semmi gond, nem sértettél meg, hiszen csak a témát láttad, a mögötte lévő embert meg honnan is ismernéd, nem igaz?!
A gyanakvásod pedig a mai körülmények között teljesen jogos, azt hiszem közös tapasztalat, hogy többen akarnak megélni "nem egészen egyenes" dolgokból, mint fárasztó, sok munkát és kitartást igénylő tevékenységből. Nem vagyok víruskészítő, vagy hacker, szívből és elvből utálom, mikor valaki más munkáját teszi tönkre, sokszor csak úgy "úri passzióból", vagy szakmai "villantásból". Nos, ennyit erről, a többi néma csend... :awink: :kalap:
(#) trudnai válasza Jossz hozzászólására (») Máj 3, 2008 / 4
 
Most nem azert, ha masok kodjabol szeretnel tanulni akkor a forras kodot szerezd meg. Ha nem adja oda akkor nyilvan nem seretne, ha tanulnal belole, de nem is annyira gond, mert egy jo szakembernek csak az eszkoz viselkedeset kell tanulmanyoznia es rajon milyen megoldast valasztott a masik.

(Mondja ezt olyas valaki aki unPIC projectet nyit a sourceforge-on..., de hidd el, ez inkabb csak arra valo, hogy pl elveszitetted a legeslegutolso valtozatat a firmware-ednek, es nem emlekszel pontosan melyik bitet kell birizalni hogy a firmware pontosan azt csinalja amit csinalnia kell, es persze ennek kitalalasa 3 honapos kiserlet eredmenye lenne... C-be meg ne akard vissza fejteni, mert csak nagyon limitalt modon lehet)
(#) watt válasza Jossz hozzászólására (») Máj 5, 2008 /
 
Szerintem sokkal érdemesebb felmenni a microchip oldalára és letölteni egy csomó példát. Azokból lehet tanulni elég sokat. Főleg a formátumok, programváz, header-ek kezelése, linkelések, stb. Aztán jó doksik vannak a fordítóhoz is(C18).
(#) kartoon hozzászólása Máj 22, 2008 /
 
Udv, a kerdesem nagyjabol beletartozik a temaba, igy nem nyitnek neki uj topikot.
Arrol lenne szo, hogy egy C forráskódot a hi-Tec fordítóval miként lehet lefordítani hexaba.
Addig eljutottam, hogy a letoltottem a Hi-tec forditot, a Hi-tide-ot es betoltottem a programot. Keszitettem projektet is neki, de sehogy sem tudom ravenni, hogy hasznalhato hex fajlt keszitsen. Tudna valaki segiteni ebben?
(#) trudnai válasza kartoon hozzászólására (») Máj 22, 2008 /
 
Van egy olyan nevu topic, hogy "PIC miertek, hogyanok" - ez kiemelt topic zold szinnel felul, oda erdemesebb szerintem ezt a kerdest feltenni... Jomagam sajnos nem ismerem a Hi-Tec compilert igy sajnos nem tudok valaszolni de ott a masik topicban talan vannak olyanok akik tudnak ertelemben is hozzaszolni.
(#) vilmosd válasza trudnai hozzászólására (») Máj 22, 2008 /
 
Hali
A HITECH c-t a MPLAB alol kellene hasznalni. A Varazsloban pl elo tudsz allitani projektot ami vegigvezet kerdes felelt modszerrel . Itt megadod hogy milyen PIC, ilyen fordito (itt kell kivalasztanod a HITECH C-t, megadni az eleresi utat, az inc konytarat, etc) es utana a MPLAB project automatikusan azt fogja hasznalni. Ha megirtad a forrast raboksz a Build All gombra es lass csodat le fog fordulni (vagy ad egy kilometeres hibalistat).
Nagyjabol ennyi. Ez termeszetesen vonatkozik mas forditokra is amit tamogat a MPLAB. (van vagy 15-20 fele).
Ez a modszer azert is jo mert tudod hasznalni a Debug funkciokat ami hibakeresesnel nem egy hatrany. Ha esetleg van ICD v. PK2-tod rogton a forditas utan be is fogja egetni a chipbe.

Na Csa Vili
(#) trudnai válasza vilmosd hozzászólására (») Máj 22, 2008 /
 
Rendben, csak ne nekem cimezd Remelem azert az OP vette az "adast"
(#) vilmosd válasza trudnai hozzászólására (») Máj 22, 2008 /
 
Bocs

Remelem a cimzett raismert.
Vili
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem