Linker Hi-Tech PIC18

Gast #2565430
Lesenswert?
• ▲
▼
Hallo

Ich habe ein Problem mit dem Linker im PIC18 MCU Compiler.

Ich möchte eine Funktion im Speicherregister an eine bestimmte Adresse 
setzen. Wenn ich nun den "SpeicherMap" anschaue, steht der gesamte Code 
immer am Ende oder am Anfang im Speicherregister.

Gemäss Beschreibung sollte
void test() @ 0x100
nun an absoluter Adresse 0x100 stehen. (Tut sie leider nicht)

Was mache ich falsch?

Herzlichen Dank
Gast #2565511
Lesenswert?
• ▲
▼
Hi, hatte ein ähnliches Problen.
Mein Code wurde im Bereich des Bootloaders erzeugt.
Im Menue Project Built Options Project im Register Global nal folgende 
command line eingeben:
--ROM=default,-f000-ffff

Das sperrt den o.g. Bereich

Gruß Dirk
Gast #2565936
Lesenswert?
• ▲
▼
Danke für die Antwort.

Aber ist es nicht möglich direkt im Code die absolute Adresse für die 
Funktion einzugeben?
Gemäss dem Datenblatt vom Compiler sollte es mit @adresse gehen! Habe 
ich eine falsche Einstellung im Compiler?

Mfg
Gast #2580363
Lesenswert?
• ▲
▼
Für alle die es Interessiert:

Am Codeanfang habe ich folgede Definition eingefügt:

#define PROG_START  0x20
#asm
   ORG 0h
   GOTO PROG_START

   ORG 08h
   GOTO PROG_START+8h

   ORG 18h
   GOTO PROG_START+18h
#endasm

Somit wird in der "Rootsektion" die Adresse vom main() und den 
Interrupts eingetragen.

Beim Linker muss nun noch der --CODEOFFSET=0x20 eingegeben werden. 
Dadurch wird der Programmcode an die Adresse 0x20 und nicht 0x0 
geschrieben.

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.