was hat es eignetlch mit diesen Vektoren auf sich? Gibt ja jede menge: Reset Vektor, Interrupt vektor usw. Ist in diesem Speicherelement (also wo der vektor ist) die Sprung Adresse, des entsprechenden events gespeichert? Also eigentlch nur ein Pointer?
@ ovt (Gast) >was hat es eignetlch mit diesen Vektoren auf sich? Gibt ja jede menge: >Reset Vektor, Interrupt vektor usw. Das sind Zeiger auf Interruptserviceroutinen. >Ist in diesem Speicherelement (also wo der vektor ist) die Sprung >Adresse, des entsprechenden events gespeichert? Praktisch ja. Wobei es da zwei Arten gibt, abhängig vom Prozessor. Beim AVR stehen an der Stelle Sprungbefehle in die Routinen. Bei anderen Prozessoren stehen dort nur die Adressen, die der Prozessor erst auslesen muss und dann dorthin springt. > Also eigentlch nur ein Pointer? Ja. MFG Falk
Genau das wollte ich wissen - Danke Ach ja und wie geht das mit dem Reset Vektor? Ist das nur ein Pointer auf eine std Funktion welche die Peripherie des uC (Xscale) zurücksetzt, oder wird der ganze conntroller zurückgesetzt (also PC = 0)?
ach ja noch was: was ist der unteschied zwischen Inerrupt Vektor und Fast Interrupt Vektor?
Das Zurücksetzen eines µCs geschieht normalerweise durch den Resetimpuls (Leitung auf LOW ziehen). Die Adresse die im Resetvektor steht zeigt auf den Code, der zuerst ausgeführt wird (z.B. Variablen initialisieren) und deine Main-Funktion aufruft. Damit kannst du (je nach Typ) den µC (komplett) neu initialisieren. Teilweise haben µCs aber auch "Write-Once" Register, die nur einmalig nach dem Reset verändert werden können. Diese sind doch einen Softwarereset (Sprung auf den Interruptvektor) dann natürlich nicht mehr veränderbar.
.... dazu kann man bei avr abfragen, ob ein port schon auf eine bestimmte richtung (ddrx) initialisiert wurde ..... mfg pico
Hallo, Das zuvor gesagt geht zwar in die richtige Richtung und meint auch das richtige, ist aber genau genommen falsch! Bei AVR sind das KEINE Vektoren im eigentlichen Sinn, sondern Befehlsspeicherstellen. Ein Vektor wäre es dann, wenn dort lediglich eine Adresse stehen würde, die der AVR dann intern in einen Sprung "umwandeln" würde. Beim AVR wird dort aber keine reine Adresse plaziert, sondern ein kompletter Befehl, z.B. kann in der Vektortabelle ja ein einfaches RETI stehen, wenn dieser Int. nicht benötigt wird. Die Aussage, dass es sich um reine Pointer handelt ist also so nicht richtig. Jochen Müller
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.