[elektro] C program szervezése? Help
hg12345
hg12345 at freemail.hu
Fri Jun 11 11:41:28 CEST 2010
a feladatot nehéz megfogalmazni, néhány sorban!
pl: van egy öröklödési függvény amit több forditási egységben használok. Ez eddig jól működött. A program fejlesztése során elértem egy olyan pontra, hogy ezt helyettesíteni kéne több függvénnyel. Természetes ezek a függvények nagyon hasonlóak, ki és bemeneti paramétereik egyeznek. Ezzel együtt újabb fordítási egységek kerülnek a programba és egyes régiek feleslegessé válnak.
A fordítási egységek átírhatóak, hogy a fordító megegye,de a linker még igy is néha kiabál.
Célszerü lenne iylen esetben egyes fordítási egységeket kiemelni átmentileg a programból, majd szakaszos ellenörzés után visszahelyezni.
Érzem nem tudom igazán megfogalmazni a kérdést.
e <halaloszto at yahoo.co.uk> írta:
>aha. asszem akkor most ertettem meg a problemat egyelore. >
>
az egesz visszalepes kerdes es tarsai kodolas kozben ertendoek. >
>
erre egyelore csak azt tudom ravagni, hogy minden onallo forditasi egyseg minden publikus deklaracioja a .h fileban van. igy ha a fuggveny fejlece megvaltozik, akkor az azt includeolo blokkok mind ujrafordulnak, es ha az uj header nem klafa, akkor mindegyikben meglesz a forditasi hiba.>
>
a linker nem azert sir, mert valami nem fordult ujra, igy az abba belefordult fejlec nem passzol az uj verzioval?>
>
vajk>
>
>
>
>
________________________________>
From: hg12345 <hg12345 at freemail.hu>>
To: elektro at tesla.hu>
Sent: Fri, 11 June, 2010 10:43:11>
Subject: Re: [elektro] C program szervezése? Help>
>
Nem, a programok jól működnek a alá és felé rendeltségi szintek, biztonsági felügyeletek, callback-ek tökéletesek (remélem ;-)>
Nehéz megfogalmazni, ez igen egyszerű szerkezet kívülről, de belül eléggé összetett. pl: http://www.eroelectronic.com/english/functioncontrol.html >
>
A program írása közben vannak gondok, mivel a sok összefüggés miatt iterációs programozási technikát használok, vagyis alulról-felfelé és felülről-lefelé program építés van attól függően mit lehet megvalósítani. Ezért néha a már leprogramozott "csatoló" függvényekhez is hozzá kell nyúlni, sokszor alapvetően. Esetleg a nevét kell megváltoztatni mert helyette több ilyenre van szükség. Ilyen esetben kéne a visszalépés.>
>
A linker nélküli programozásnál ez nem okozott gondot, mert a fordító minden pozicióban feldobálta a hiányosságokat, de a linker esetén, már a C fordító az első hibás block esetén leáll, miután kijavítodtad, és már elvileg hibátlan a forrás akkor a linker kezd jelezni, de itt már nem ennyire egyértelmű a hiba.>
>
>
vajk fekete <halaloszto at yahoo.co.uk> írta:>
>ha jol ertem, az a problema, hogy a daralas modul ha beszorul a cucc vissza akar hivni az elotolo modulnak, hogy ne tolja az anyagot. ha nincs elotolo modul, akkor szopas van.>>
>>
ezt oldja meg, hogy a daralo a kontrollernek szol, hogy elotolas alljon meg, aki ha van szol az elotolasnak, ha nincs, akkor jelzi a daralonak, hogy oldja meg maga.>>
>>
vajk>>
>>
>>
>>
>>
________________________________>>
From: hg12345 <hg12345 at freemail.hu>>>
To: elektro at tesla.hu>>
Sent: Fri, 11 June, 2010 10:16:11>>
Subject: Re: [elektro] C program szervezése? Help>>
>>
Köszönöm a válaszokat,>>
1, a programok mindig ROM területen vannak, a dinamikus kezelés nem járható.>>
>>
Amit írsz ahhoz hasonló dolog többszörösen van megvalósítva>>
- az készülék állítható konfiguráció szerint a program részek más-más feladatokat hajtanak végre, ill. kikapcsolják magukat és az utánuk dolgozó programokat is, ezzel egyűtt a uC lábainak működését is megváltoztathatja is. >>
- a fenti állításokkal párhuzamosan a készülék kezelése is megváltozik (MMI vagyis a MENU) és a számítógépes felület regiszter kiosztása (MODBUS), ezek még mindezektől függetlenül is átszervezhető.>>
>>
A fenti részeknek a technikája adott (ilyen készülékeim már léteznek). >>
>>
A probléma az ezek írása közben elképzelhető, hogy egy visszalépést kell csinálni a programban, de a legtöbb program modul többszörösen össze van fűzve... Ezért egy modul kivétele után ezer helyen kiabál jogosan a linker.>>
>>
A program nem nagy, 5-10e sor(talán több)..... 30-50 fordítási egység.>>
>>
>>
>>
>>
>>
vajk fekete <halaloszto at yahoo.co.uk> írta:>>
>pl egy primko modszer, ahol van egy control modul, ami minden egyes funkciomodullal tartja a kapcsolatot. a funkciomodulok csak a controlon keresztul tudnak egymassal kommunikalni.>>>
>>>
uj modul hozzaadasa a funkctiomodul megirasa, es a controlban a hozza kapcsolodo resz elkeszitese. >>>
>>>
modul kihagyasakor a controlt kell csak modositani.>>>
>>>
level2 hogy a control magatol rajon hogy adott funkciok hianyoznak, es elore le van benne kodolva mit kell csinalni az egyes funkciok meglete/kihagyasa eseten>>>
>>>
level3 hogy a control csak egy altalanos celu kommunikacios valami, ami dinamikusan kezeli a modulokat, nem kell modositani uj modul hozzaadasakor.>>>
>>>
alapszinten a control tartalmaz minden nem opcionalis funkciot, csak azok vannak kulon, amikkel jatszol hogy van vagy nincs.>>>
>>>
vajk>>>
>>>
>>>
>>>
>>>
________________________________>>>
From: hg12345 <hg12345 at freemail.hu>>>>
To: elektro at tesla.hu>>>
Sent: Fri, 11 June, 2010 8:57:53>>>
Subject: Re: [elektro] C program szervezése? Help>>>
>>>
Újra írni mindent könnyű :-( >>>
>>>
Már csak egy kérdés, hogyan lesz a következő változat olyan, hogy bármelyik modul be és kikapcsolása(fordítása) után is működőképes legyen?>>>
A technikájára lennék kiváncsi! >>>
>>>
>>>
Karoly Kovacs <koka55 at yahoo.com> írta:>>>
>Haaat, nagyon nem fogsz orulni annak, amit en most irni>>>>
fogok.>>>>
En meg a regi iskolaban tanultam (79-ben vegeztem mate->>>>
matikuskent), es mi azt tanultuk - es ezzel az azota felgyu->>>>
lemlett tapasznyalatom is egybe vag, hogy ilyen esetekben>>>>
nem szokott mas segiteni, csak az ecetes ollo.>>>>
>>>>
Azaz az egeszet ujrairni. :(((>>>>
>>>>
Nagy melo, sok faradsaggal, sok agyalassal, es meg tobb>>>>
anyazassal ("a qrva anyad, eddig mukodtel, most meg nem"),>>>>
de ha nem egyedi programrol van szo, hanem valami fontos>>>>
cuccrol, akkor - szerintem - csak ez az egyetlen jo megoldas>>>>
marad.>>>>
>>>>
Bocs, hogy koran reggel ilyen rossz hirrel traktallak!>>>>
>>>>
Karoly>>>>
>>>>
----------------------------------------------------->>>>
"Houston, I am the problem!">>>>
>>>>
>>>>
>>>>
----- Original Message ---->>>>
> From: hg12345 <hg12345 at freemail.hu>>>>>
> To: elektro <elektro at tesla.hu>>>>>
> Sent: Fri, June 11, 2010 2:09:18 AM>>>>
> Subject: [elektro] C program szervezése? Help>>>>
> >>>>
> C kód csoportok szervezése...>>>>
>>>>
Elég sokáig nem linkelt programokat irtam, >>>>
> itt kicsit>>>>
egyszerűbb volt a program szervezése.>>>>
>>>>
Valószínüleg nem >>>>
> megfelelően csoportosítottam a programot>>>>
(kódot), mert elértem egy olyan >>>>
> szintet, hogy kód>>>>
csoportott már nem tudok kivenni a >>>>
> programból...>>>>
>>>>
Ésszerűen hogyan kell csinálni?>>>>
>>>>
A program egy >>>>
> szokványos uC-re épülő önnálló müködésű eszköz>>>>
kódja, nem használ külső >>>>
> lib-ket kivéve a C egész>>>>
arithmetikai könyvtárait. Igyekeztem minden egységet >>>>
> külön>>>>
programozni és ezeket linkve felépíteni a rendszert. A>>>>
blokkok >>>>
> közötti kapcsolatok mostanra olyan szövevényesek>>>>
lettek, hogy egy függvény >>>>
> lecserélése is problémás.>>>>
>>>>
a block felépítése:>>>>
block belső definició >>>>
> header>>>>
block külső definició header>>>>
blockban használt "extern" >>>>
> headerek>>>>
global és static változók definiciója>>>>
>>>>
block rendszer >>>>
> programok>>>>
block öröklödési programok>>>>
block müködtető programja>>>>
>>>>
A >>>>
> legnehezebben kezelhető részek az öröklödés (ez több>>>>
blokkon is átnyúlik), >>>>
> program végrehajtás ütemező és a>>>>
készülék felügyelet.>>>>
>>>>
Nem találok erre >>>>
> irodalmat, tapasztalatom mint látszik kevés :-)>>>>
>>>>
Remélem vannak bejáratott >>>>
> megoldások....>>>>
>>>>
>>>>
----------------------------------------->>>>
>>>>
> elektro[-flame|-etc]>>>>
>>>>
>>>>
>>>>
>>>>
----------------------------------------->>>>
elektro[-flame|-etc]>>>
>>>
----------------------------------------->>>
elektro[-flame|-etc]>>>
>>>
>>>
>>>
>>>
----------------------------------------->>>
elektro[-flame|-etc]>>
>>
----------------------------------------->>
elektro[-flame|-etc]>>
>>
>>
>>
>>
----------------------------------------->>
elektro[-flame|-etc]>
>
----------------------------------------->
elektro[-flame|-etc]>
>
>
>
>
----------------------------------------->
elektro[-flame|-etc]
More information about the Elektro
mailing list