2016-06-15 4 views
0

Ich arbeite auf dsPic33EP256MC502 Anwendung, ich muss auf Flash schreiben, um die Konfiguration zu speichern. Alle Arbeiten außer dem Löschen der Seite lösche ich zu viel oder zu viel.dsPic33 Seite löschen Größe

Datenblatt sagen Seitenlöschen Seitengröße „1024 Anweisungen“ (3072 Bytes) ist Da der Befehl 24 Bits + phantom Byte ist, Anweisung ist 32 Bit ausgerichtet Wir müssen zwei Adreßeinheit eine Anweisung

Beispiel zur Adresse:
0x000000: [Phantom] [Anweisung1] [Anweisung1] [Anweisung1]
0x000002: [Phantom] [Anweisung2] [Anweisung2] [Anweisung2]
0x000004: [Phantom] [Anweisung3] [Anweisung3] [Anweisung3]
0x000006: ...

A/Naiver i berechnen 1024 Anweisungen Seitengrße wie:

  • 4096 Bytes (phantom Byte enthalten) [1024 Anweisungen x 4 Byte]
  • 3072 utile bytes. [4096 Byte x 0,75]
  • wir 2048 Adreßeinheit [4096/2] eine Seiten So müssen Adresse: 0x800-Adresse pro Seite

B/ich einen empirischen Test, um zu überprüfen und ich fand 0x600-Adresse pro Seite, bedeutet 1024 Anweisungen ist:

  • 0x600 ist 1536 Adresse
  • 3 072 Bytes (phantom Byte enthalten) [1536 x 2 Bytes]
  • 2304 utile Bytes [3072 Byte x 0,75]
  • I gefunden erase Seite ist 768 Anweisungen[3072/4]

Ich verstehe nicht, wie das Datenblatt zählen Anweisungen mit oder ohne das Phantom-Byte, drei oder vier Bytes? Wie viele Adressen pro Seite sind verfügbar?

Kann mir jemand helfen, meinen Fehler zu verstehen und/oder einen guten Standpunkt zu bekommen?

Antwort

0

I bestätigen nun 1024 Anweisungen löschen Seite lautet:

  • 4096 Bytes (phantom Byte enthalten) [1024 Anweisungen x 4 Bytes]
  • 3072 utile bytes. [4096 Byte x 0,75]
  • Wir brauchen 2048 (0x800) Adreßeinheit [4096/2], um eine Seite zu adressieren

Vorsicht Sie tun testen Lösch-Seite ausgerichtet ist, weil, wenn Sie eine Seite bei einem Lösch Adresse in der Seite, die ganze Seite ist gelöscht, deshalb war meine empirische Schlussfolgerung schlecht.

Seite 0: 0x000000 bis 0x0007FE
Seite 1: 0x000800 bis 0x000FFE
Seite 2: 0x001000 bis 0x0017FE
Seite 3: 0x001800 bis 0x001FFE
Seite 4: 0x002000 bis 0x0027FE
...
Seite 84: 0x02A000 zu 0x02A7FE
Seite 85: 0x02A800 zu 0x02AFFE (letzte Seite enthält Flash-Config Bytes)
Seite 86: 0x02B000 (inexistent Seite)

Verwandte Themen