PIC24: Malloc/Free mit externem SRAM Speicher

Gast #1415103
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.