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

elight elight at gmail.hu
Tue Sep 22 13:17:21 CEST 2015


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]



More information about the Elektro mailing list