[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