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

hg12345 hg12345 at freemail.hu
Tue Sep 22 12:46:56 CEST 2015


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]
>



More information about the Elektro mailing list