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

elight elight at gmail.hu
Tue Sep 22 10:09:55 CEST 2015


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






More information about the Elektro mailing list