Erweiterter Befehlssatzmodus für PIC18F mit Hi-Tech Compiler

Ich schreibe eine Firmware für einen PIC18F6622- Mikrocontroller. Ich verwende MPLAB IDE 8.73 + HI-TECH C Compiler für PIC18 MCUs (PRO) 9.66. Wenn ich das XINST (Extended Instruction Set enable Bit) setze, gibt mir die IDE diese Warnung:Geben Sie hier die Bildbeschreibung ein

Welche Einstellungen muss ich vornehmen, um den erweiterten Befehlssatz des PIC verwenden zu können?

BEARBEITEN: Gerade im Netz gefunden: 'Wenn gesetzt (das EXTENDED INSTRUCTION-Flag), muss Ihr Programm (oder Ihr Compiler) es berücksichtigen, um die richtigen Adressierungsmethoden zu verwenden'. Aber was bedeutet das wirklich?

Hast du einen Link für das Zitat in deiner Bearbeitung? Ich denke, die Zusammenfassung des Befehlssatzes im Datenblatt könnte es wert sein, nach einer detaillierteren Erklärung zu suchen.

Antworten (1)

IIRC, es gibt eine Einstellung der Compiler-Optionen, um ihm mitzuteilen, dass er den erweiterten Satz verwenden soll. Versuchen Sie, dies einzustellen, und es sollte aufhören, sich zu beschweren.

Bearbeiten - Das Obige funktioniert für C18, aber anscheinend unterstützt Hi-Tech das erweiterte Set demnach nicht

Ja, den Link habe ich auch gelesen, aber ich hatte gehofft, dass er veraltet ist :)
@m.Alin - Ich denke, es ist immer noch aktuell. Sie könnten jedoch das Handbuch überprüfen (ich habe nur kurz durchgeblättert, konnte aber keine Option für den erweiterten Modus sehen, und es gibt kein Kontrollkästchen in den MPLAB-Optionen wie bei C18). Wenn Sie es verwenden müssen, können Sie es vielleicht tun Verwenden Sie stattdessen C18 (ich denke, Sie benötigen jedoch die Vollversion)
Ich fange auch an zu glauben, dass der HI-TECH-Compiler den erweiterten Befehlsmodus nicht unterstützt. Wie auch immer, keine Sorge, ich bin nicht darauf beschränkt, im erweiterten Befehlsmodus zu programmieren. Es wäre jedoch gut gewesen, die erweiterten Funktionen des PIC18 zu nutzen.
Ich wünschte wirklich, Microchip hätte den erweiterten Befehlssatz so konzipiert, dass er eine kleine Menge der "gemeinsamen" Bank für die FSR2-Indizierung (z. B. 15-24 Bytes) und vielleicht eine zusätzliche, kleinere Menge für FSR0/FSR1 (vielleicht 7-8 Bytes), während der größte Teil der gemeinsamen Bank als gemeinsame Bank verfügbar bleibt. Eine Menge Code muss so ziemlich einige Register ohne Bank verfügbar haben, und viele PIC18-Register haben NULL nicht festgeschriebene Register ohne Bank, wenn der erweiterte Befehlssatz aktiviert ist.