[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