PIC24: Malloc/Free mit externem SRAM Speicher

Gast #1415103
Hallo!

An einen PIC24FJ96GA010 habe ich über I/O-Ports einen externen 
SRAM-Speicher (512K x 8) angebunden. Der Microchip C30-Compiler für 
diesen Prozessor unterstützt dabei das Anlegen von Speicherbänken, wie 
im Benutzerhandbuch beschrieben ist (Stichwort: "External Pointer"). Die 
entsprechende Funktionen habe ich implementiert und sie scheinen auch 
für statisch definierte Variablen zu laufen (via LogicPort am SRAM 
beobachtet).

Frage: Hat jemand Erfahrung, ob man bei einem solchen externen Speicher 
das MALLOC und FREE des C-Compiler nutzen kann? Wenn ja: Wie sieht die 
Lösung aus? Das Handbuch sagt leider nichts dazu.

//Definieren einer Speicherbank:
extern int ExtMem_Bank0 _attribute_ (( 
space(external(size(EXTMEMSIZE))) ));

//Definieren einer Pointer-Variablen in der Speicherbank
static _external_ int *ptrExtMemArr 
__attribute__((space(external(ExtMem_Bank3)) ));

//Reservieren von Speicher:
ptrExtMemArr = (int *) malloc(1500 * sizeof(int));

Das Reservieren scheint zu funktionieren, aber die Zugriffe hauen leider 
überhaupt nicht hin...

Danke im vorraus.
PeFi1

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.