Probleme mit Funktionspointer

Gast #2352505
Lesenswert?
• ▲
▼
Guten Morgen,

ich verwende einen 16Bit Mikrocontroller. Das Speichermodell steht auf 
Huge. Bei der Verwendung dieses Funktionspointers bekomme ich nicht die 
Adresse 0xB42000, sondern die Adresse 0x002000. Was könnte ich tun, 
damit ich die Adresse 0xB42000 bekomme?
Ich habe auch huge verwendet bei der Deklaration, leider ohne erfolg.
1
#define ADRESSE 0xB42000
2

3
void (*Test)(ulong,uword); // Deklaration eines Funktionspointers
4

5
Test = (void (*)(ulong,uword))((ulong)(ADRESSE));

Für jede Hilfe bin ich sehr dankbar.
Gast #2352539
Lesenswert?
• ▲
▼
Leon schrieb:
> Im Compilerhandbuch von TASKING habe ich entdeckt,

Nutzt du denn den Tasking-Compiler? Wenn nicht, was sagt denn das 
Handbuch zu deinem Compiler zu dem Thema?

Wenn doch, solltest du dir das Konzept mit Segment und Offset der 
einzelnen Memorymodelle genauer anschauen.

Bleibt nur die übliche Frage. Warum willst du überhaupt eine Funktion an 
dieser "komischen" Adresse aufrufen?

Oliver

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.