Bernhard wrote:
> Hallo,
>
> wenn ich .org benutze, um einen rjmp genau da hin zu legen, wo der
> Interrupt hinspringt, wo landet der Rest meines Codes? Wird mein
> gesamter Code soweit nach unten geschoben, dass der eine Befehl an der
> richtigen Stelle liegt? Womit wird der Anfang aufgefüllt, mit 'nop's?
Der "Anfang" ist dann nicht definiert. Der Assembler erstellt daraus
eine fragmentierte Hexdatei, bei der nicht definierte Teile ausgelassen
werden. Was dann in Deinen AVR gebrannt wird, ist Sache Deines
ISP-Programms, es kommt halt drauf an, was das mit undefinierten
Adressbereichen macht. Ich vermute mal, die meisten ISP-Programme lassen
den Flash dann leer, es wird $ffff an den entsprechenden Adressen
stehen.
Ich selbst vermeide es, Lücken im Code zu haben, es wird aber oft
empfohlen und ich möchte diesen Empfehlungen nicht widersprechen.
>
> Was wäre, wenn ich zwei .org Direktiven habe, welche aber einige Stellen
> voneinander auseinanderliegen (also z.B. externer Interrupt
> INT0addr=$002 und ADC Interrupt ADCCaddr=$020), was kommt dann in den
> Zwischenraum? Also zwischen $002 und $020? Wird das mit 'nop's
> ausgefüllt?
Nein, die Hexdatei lässt diese Bereiche aus. Sie sind dann nicht
definiert. Siehe oben.
>
> Danke schonmal...
Bitte.
MfG, Blaubär, der Trollige