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

Steve istvan.retaller at gmail.com
Tue Sep 22 10:33:33 CEST 2015


Mezei avr-ben csináltam olyasmit, hogy a program írhatja a saját 
flash-ét, ARM-ban nem vagyok járatos.
A leírtak alapján feltételezem, hogy van a programodban valahol egy 
flash író process. Ide kellene valami break-et tenni.
Ha a normál futása alatt is van flash írás, akkorsincs baj, az író 
rutinba beszúrod, hogy ellenőrizze, milyen címre akar írni. Ha a 
kririkus területre írna, akkor break és lehet debuggolni, ha nem 
kritikus terület a célja, akkor meg hadd fusson.


2015-09-22 10:09 keltezéssel, elight í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]
>
>



More information about the Elektro mailing list