FlashDownloader

calcFlashCheck schlägt nach einem Download fehl

Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

FlashDownloader

 · 
Gepostet: 15.08.2017 - 14:39 Uhr  ·  #1
Hallo Rolf,

Bei mir schlägt calcFlashCheck_S (kompletter Check über das ganze Flash)
nach einem FlashDownload mit FlashDownloader fehl.

Vermutung Problemursache:
Der FlashDownloader überspringt Pages mit "leerem Inhalt".
Dies wäre aber nur erlaubt, wenn das Flash zuvor leer war.
Im Fall Atmega wird nur die letzte Page vor dem Bootloader garantiert gelöscht. Alle anderen Pages werden nur bei "Bedarf gelöscht", so dass Codemüll im Flash bestehen bleibt und ein calcFlalshCheck dies als korrupten Inhalt erkennt.

Gruß Thomas

Codeauszug FlashDownloader

Code

procedure TMainForm.DownLdBtnClick(Sender: TObject);
[...]
begin
[...]
      // erase last flash block below loader which may contain bootcheck bytes
[...]      
    repeat
      SendIt:= false;
      FillChar(bArr, sizeOf(bArr), $FF);
      for idy:= 0 to BlockSize -1 do begin
        bb:= FlashArr[idx+idy];
        if bb <> $ff then SendIt:= true;
        bArr[idy]:= bb;
      end;
      if Sendit then begin
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: FlashDownloader

 · 
Gepostet: 17.08.2017 - 15:03 Uhr  ·  #2
Hallo Thomas,

ja, das ist ein Problem. Der Downloader optimiert hierbei.
Der dann zur Laufzeit aufgerufene Check weiss dann aber nichts
von solchen Lücken und es kommt autom. zu Fehlern.
Eine Lösung dafür sehe ich leider nicht.

rolf
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: FlashDownloader

 · 
Gepostet: 17.08.2017 - 21:53 Uhr  ·  #3
Hallo Rolf, Danke für die Antwort.

Man könnte die Optimierung des Downloaders (PC Tool) doch dahin ändern, dass vor dem Programmieren immer zuerst alle Pages gelöscht werden.

1.) alle Pages löschen
2.) Pages mit Inhalt ungleich $FF schreiben

Es werden unter Umständen auch kein Flashkonstanten programmiert, wenn diese ausschließlich aus $FF's bestehen würden.

Gruß Thomas
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.053069s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI