[elektro] STM32F100 Reset probléma. Programblokk törlődik.

elight elight at gmail.hu
Tue Sep 22 15:19:39 CEST 2015


Nincs szabad láb :'(
már így is majdnem láb = láb - 1.

Ja egy azért van,
csak az meg  a  battery   - azt meg nem szeretnék egyenlőre rakni.

Tudom , át kell térni nagyobb lábszámúra...
De amit már kipróbáltak,
és   el is visznek azoknak is működni kell még egy darabig.

Üdv István


2015-09-22 14:37 keltezéssel, hg12345 írta:
> Ilyen megoldásra jobban jársz egy akármilyen 1W, I2C, SPI buszos kis EEPROM-mal.
>
> elight <elight at gmail.hu> írta:
>> Szia,
>>
>> kezdessz közeliteni, és köszönöm az infót...
>> Máris kicsivel jobban igazolni látom
>> a feltevésem.. Az írásvédelem a végén lesz üzembehelyezéskor,
>> ( a tényleges , nem debug , futó programnál már használtam eddig is ).
>> Itt, fejlesztés közben lepett meg, hogy egy módosítás után
>> mindig eltűnt második futtatásra a program  első blokkja..
>> Ezért nem idnult a program a megnyomott reset után.
>>
>> A debug kikapcsolást azért probléma az legelejére hozni,
>>   mert akkor sokáig sötét a kijelző..
>> Egyéb ( LCD, TFT ) esetben simán megvillantgatom
>> egyszer kétszer a háttérvilágítást,  hogy a kezelő lássa ,
>> nem azért nincs semmi, mert lefagyott, hanem mert bootol..
>> és majd bejön 2 sec múlva a kép is neki.
>> Ha nincs a két sec kivárás, nem tudok legközelebb rákapcsolódi.
>> Most FT800 -at használok, és eztetet Initelni kell és paranccsal
>> vezérelni a háttérvilágítás módosításához is.
>> Szóval jelenleg  a 2 sec alatt van a nyitókép, és utána tiltom a debuggot.
>>
>> Valahogy így van , de éppen barkácsolgatom.. Lehet hogy teszek egy plusz
>> ledet és az fog villogni a boot alatt, hogy lehessen látni hogy tölt, (
>> perzse ez a debug on )
>> és utána lezár ( ez meg a debug off )
>>
>> Így mehetne az elejére a letiltás, egyenlőre , ha nem lesz  jobb ötlet.
>> Egyébként a Flash-t is csak a legelső körben ( első futás ) írom most,
>> és a következőekben már csak olvasom. Ezzel oldottam meg ,
>> ha valami paramétert , időzítést etc. változtatnom kell
>> beszabályozáskor , akkor egy konkrét , izolált helyen lehessen azt
>> megtenni.
>> Ne kelljen az egész progit végigturkáni
>>        ( hát tul. ez flash blokk az a Init adatok tára :)
>>
>>
>> Üdv István
>>
>>
>> 2015-09-22 12:46 keltezéssel, hg12345 írta:
>>> Szia,
>>>
>>> - a legegyszerűbb megoldás, ha blokkolod írásra azt FLASH szegmenst ( 1K lépésekben lehet állítani az írásvédelmet!) Ha magad is írod a flash-t akkor célszerű azokat szegmenseket védetté tenni amit nem fogsz használni, sok kellemetlenségtől szabadíthatod meg magad!   Ha írod a flash írás után ellenőrződ az írást?
>>>
>>> Ha kiakarod kapcsolni debug-t azt a legelején célszerű tenni, még a C_INIT után vagy elött.
>>>
>>> Reset után induláskor lehet más probléma, a két BOOT (RB1:-) láb felhasználásával, főleg ha sikerül RAM-ból vagy BOOTROM-ból indítani az eszközt, akkor kicsit más lesz a memória kiosztás, Ezt is érdemes ellenőrizni.
>>>
>>>
>>> elight <elight at gmail.hu> írta:
>>>> Sziasztok.
>>>>
>>>>
>>>> ARM C programozásnál akadt egy olyan
>>>> kellemetlen  jelenség  amit jelenleg  nézegetek..
>>>>
>>>>
>>>> Maga a program Main része szokásos..
>>>>
>>>> Van egy Init és egy Int_Init rész , uart  , systick interrupt-al.
>>>> Flash  területről 12 word  init változó olvasás,
>>>> és ha nincs ott még adat akkor
>>>> létrehozza , letárolja , ismét olvassa.
>>>> Grafika initelés , nyitóképernyő
>>>> SWD debug kikapcsolás. ( kellene a plusz lábak )
>>>> Main képernyő
>>>> while(1)  {  működö rész }
>>>>
>>>>
>>>> Bele javítottam egy már tesztel működő program
>>>> bizonyos részeibe..  és nem jövök rá hogy a javított ,
>>>> vagy esetleg egy régóta bennemaradó hiba szívat?
>>>>
>>>> A jelenség az , ha beégetem a programot
>>>> akkor minden hibátlanu fut , jól kommunikál
>>>> jók az adatok a képernyőn, a kimenetek megfelelőek stb..
>>>> Ha először le-resetelem már akkor SWD visszakapcsolódása
>>>> és a program visszaolvasása után azt látom hogy a
>>>> 0x8000000 - 0x800003FF  program terület kitörlődött
>>>> és 0xFFFFFFFF  az értéke.
>>>> Hatására az ismételt RESET-ek hatástalanok...  !!!
>>>> Ismételten felülírom a programterületet , akkor a
>>>> következő reset-ig megint jól működik.
>>>>
>>>> Maga a program már eléggé meghízott hogy egy az egyben
>>>> végigdebugolhassam..   Szétszedegetni lassú.
>>>> Valami gyorsabb tesztelési ötlet lenne jó előtte.
>>>> Mit is bontsak ki, és nézegessek.
>>>>
>>>> Először  arra gondoltam hogy talán a FLASH init okozná. Megtéved.
>>>> Ha tologatok a Main_Init  részben egy while(1); Stopp gyanánt:
>>>> - Nyitóképernyőig is  jól fut le és vár... Bárhányszor resetelhető.
>>>> Utána arra  gondoltam hogy az SWD  debug kikapcsolás okozza,
>>>> de ha kiveszem ( ennek hatására 3-4 port inputban marad ,
>>>> nem lesz Alternatív IO, de ez nem gond  )
>>>>       a RESET probléma akkor is fennáll.
>>>>
>>>> Egyenlőre a hozzáírt részekben még nem igen találtam meg az igazi okát.
>>>>
>>>> Üdv István
>>>>
>>>>
>>>>
>>>>
>>>> -----------------------------------------
>>>>            elektro[-flame|-etc]
>>>>
>>> -----------------------------------------
>>>             elektro[-flame|-etc]
>> -----------------------------------------
>>           elektro[-flame|-etc]
> -----------------------------------------
>            elektro[-flame|-etc]



More information about the Elektro mailing list