Ich habe sowohl PIC18- als auch PIC24-Mikrocontroller mit 256 KB Flash-Speicher.
Meine Codegröße beträgt 400 kB und kann nicht mehr im Flash-Speicher dieser MCUs gespeichert werden. Also denke ich darüber nach, einen externen Flash-Speicher zu verwenden, um den Programmcode zu speichern.
Kann ich meine ausführbare Datei im externen Flash speichern und von dort ausführen? Wie mache ich das?
Es gibt PIC24- und dsPIC33-Modelle mit 512 KB Flash.
PIC18F8622 & 8722 und einige andere PIC18F (z. B. 87J50, 97J60) haben eine externe Busschnittstelle, Sie können dort einen parallelen Flash (Typ 29xx) platzieren, und der externe Bus kann bis zu 2 MB adressieren.
Aus dem Datenblatt können wir entnehmen, dass dies zum Speichern von Programmcode verwendet werden kann:
Der External Memory Bus (EMB) ermöglicht dem Gerät den Zugriff auf externe Speichermedien (wie Flash, EPROM, SRAM usw.) als Programm- oder Datenspeicher .
Die Verwendung anderer Arten von Schnittstellen zur Verbindung mit einem externen Flash könnte problematisch sein, da Sie den Code nicht direkt vom Flash ausführen könnten, sondern den Code vor dem Ausführen in den RAM kopieren müssten - aber da diese Mikrocontroller dies tun extrem begrenzte RAM-Ressourcen, würde dies die Nützlichkeit einer solchen Lösung stark einschränken (Sie müssten eine Art Paging-/Overlay-Technik implementieren).
Hier ist das Produktauswahltool von Microchip, mit dem Sie nach Modellen mit bestimmten Merkmalen suchen können: http://www.microchip.com/maps/microcontroller.aspx
m.Alin
Wouter van Ooijen
Shail Korat