FlashDownloader

calcFlashCheck schlägt nach einem Download fehl

Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

FlashDownloader

 · 
Posted: 15.08.2017 - 14:39  ·  #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
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: FlashDownloader

 · 
Posted: 17.08.2017 - 15:03  ·  #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
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: FlashDownloader

 · 
Posted: 17.08.2017 - 21:53  ·  #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
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.031439s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI