ARM Beispiel

Hallole,

Hab gerade eine Platine mit nem XScale Prozessor (ARM9) Daheim zum rumspielen...

Gnu-Tools fuer den XScale ist installiert und ein LED-Wackel Programm geht auch (Funktion main() direkt ab Adresse 0)

Aktuell bin ich gerade dabei, die syscalls für's printf zu implementieren. Dazu muss ich eine Interrupttabelle ab Adresse 0 anlegen (Für den SWI Interrupt). Irgendwie funktioniert das überhaupt nicht. Nicht einmal die main() Funktion wird jetzt aufgerufen.

Genuegt es, in die Interrupttabelle nur die Sprungadressen einzutragen (Vektor), oder muss für jeden Interrupt eine Sprunganweisung programmiert werden (Hab beide Möglichkeiten schon versucht).

Hat jemand hier schon mal was mit nem ARM gemacht und vielleicht ein kleines Beispiel?

Vielen Dank im Voraus...

tschaule Martin

Reply to
Martin Kaul
Loading thread data ...

Man beachte: ab Adresse 0

Man beachte auch hier: ab Adresse 0

Schreib das Programm irgendwo anders hin und leg die Tabelle auf 0. Wenn alles unbedingt ab 0 laufen muss, schreib da einen Sprungbefehl zum Programm hin und anschliessend lass das Programm den Sprungbefehl ueberschreiben. Beispiel:

0000h: jmp 7000h ... 7000h: mov [0000h],dword 1234h ...

(ok, ich hab keine Ahnung von dem Prozessor und erst recht nicht von dem Assembler, du musst es also anpassen)

Markus Fenske

Reply to
Markus Fenske

Da müssen Sprünge hin. Der Trick war zumindest beim ARM2, daß FIQ der letzte in der Tabelle war und bei 1C dann nicht der Sprung in den FIQ-Handler, sondern der FIQ-Handler selbst stand (RISC OS hat eine Funktion, den FIQ zu reservieren und den Handler zu installieren).

Reply to
Edgar Fuß

ne, ne - in der 2. Version hab ich main() natürlich auf ne andere Adresse gesetzt, d.h. nur der Interruptvektor ist an 0.

genau das hab ich versucht, geht aber nicht (d.h. Prozessor springt in Wald) - hmm, muss ich mal weiter-wurschteln...

Danke + tschaule Martin

Reply to
Martin Kaul

Danke fuer den Hinweis - ich hab jetzt mal das Referenzmanual zu ARM bestellt - mal schaun, was dort zu Interupts drin steht...

tschaule Martin

Reply to
Martin Kaul

Das "ARM ARM" gibt es auch elektronisch - auf arm.com finde ich aktuell nur eine quick reference - ah, da ist es:

ARM Architecture Reference Manual Second Edition, edited by David Seal : Addison-Wesley : ISBN 0-201-73719-1 (Known as the "ARM ARM". ARM Doc No.: DDI-0100) Also available in PDF form on the ARM Technical Publications CD. Die gibt es unter

formatting link

cu Michael

Reply to
Michael Schwingen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.