[elektro] dsPIC33 bootloader
Balla Zoltán
sdrlab at yandex.ru
Mon Sep 27 16:47:15 CEST 2010
Feladó: "Moczik Gabor" <pm_levlista at progzmaster.hu>
>Nem lehet valahogy elérni, hogy a crt0 rutint ne fordítsa bele, mert
>mondjuk neked sajátod van?
>
Ez lenne nekem a tuti...mert akkor csak azt a kódot tartalmazná a fordított kód, amit én írtam,
amiről tudom hogy mit csinál...
>Mondjuk ez így több meló, első körben egy ASMLIST-et kéne nézni, hogy
>pontosan ki mikor hová ugrik, mert szerintem az lehet, hogy vagy a
>crt0-ra, vagy a bootloaderre csak véletlenül kerül a végrehajtás, vagy
>esetleg többször hívódik meg valami miatt.
>
Ezt már nézegettem, pontosabban próbálta a szimulátorban futtatni egy kiolvasott, már rosszul működő
hex-át, de nem jutottam eredményre, mert fogalmam sincsen hogy mit kéne csinálni azoknak a
kódrészeknek! Meg már a szimulálás sem egyszerű, mert nem az elején jön a hiba, ha léptetem,
megőszülök mire oda jutok, hogy lássam a megelőző állapotot is, ha meg futtatom, akkor meg már nem
tudok visszafelé lépni(tényleg, ez vajon miért nincs benne lehetőségként...pedig tök jó lenne)
>De ha meg tudod oldani a programot inicializáció és miegymás nélkül,
>akkor elég egyszerű lehet egy saját crt0 összetákolása.
>
Nekem ugyan nem kéne, ennek örülnék legjobban, viszont ha kihagyom a linkerben ezeket a részeket,
lefordul ugyan, de a memóriafoglalásokat teljesenelrontja pl, ugyanarra a címre kezdi pakolni a
globális változókat is, meg pl egy függvény lokális változóit, meg bemenő paramétereit is... Így
természetesen teljesen szarul fut a progi, bár inkább csak resetbe megy rögtön....
Sajnos nem tudom, mire van szüksége a C-nek, így szerintem reménytelen sajátot írni...legjobb lenne
kihagyni..., de úgy tűnik ez nem megy...
>A microchip demok között van C-ben írt bootloader demo, azt kéne
>megnézni, hogy oldották meg. Nagyon nem tudok még állást foglalni, mert
>bár akartam én is írni saját bootloadert C-ben, sose volt elég időm rá
>és azóta is a tinybootloader-t használom. (nem dspic-re....)
>
A legfurcsább az egészben az, hogy annak függvényében fut másként a proci, hogy a boot loader mit
égetett a megfelelő területre! És itt most nem az értelemszerű programra gondoltam, hanem hogy maga
a boot loader működik már másként, holott ugyanaz a program és mégis másképpen viselkedik. Pl ha
csupa 0-val töltöm föl a frissítendő területet, működik jól a boot loader..., de ha 0x5h -val, akkor
meg már az elején, még mielőtt belépne a boot loaderbe, már a C-s plussz dologban elszáll....!! Na
ezt nem értem igazán miért van...olyan mintha vagy hivatkozna egy olyan területre, amit közben
átégetek, vagy pedig a memóriában hivatkozik máshová valamiért.... Szóval nem értem...
Zoli
More information about the Elektro
mailing list