[archimedes] Re: Systemaufrufe (SWI-Calls) von C aus unter RISC OS

  • From: Alexander Ausserstorfer <bavariasound@xxxxxxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Sat, 09 Aug 2014 19:00:45 +0200

In message <dc6c8b3454.Alex@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> you wrote:

>>> weiß irgend jemand hier im Verteiler wie ich von C aus die
>>> Betriebssystemroutinen von RISC OS aufrufen kann? Ich habe es mit der
>>
>> Vielleicht reicht das kleine Progrämmschen unter
>> http://www.risc-os.de/artikel/einfuehrung_programmierung/ oder
>> die folgende Seite.
>
> Danke erstmal. Man kann also mittels der Funktion
>
> _kernel_swi(...)
>
> SWIs aufrufen. Auf den Seiten 94/95 des Buches "Raspberry Pi RISC OS
> System Programming" von Bruce Smith werden ebenfalls die Funktionen _swi
> und _swix erwähnt. Was ist denn der Unterschied zwischen diesen drei
> Funktionen? Gelten diese Funktionen generell nur für die RISC-OS-Version
> von GCC oder ist das ein allgemeineres Konzept?

Das ist natürlich gut: Im Buch von Bruce Smith wird nicht angegeben,
dass man die Dateien

kernel.h
swis.h

mit in den C-Code einbinden muss. Das habe ich erst dank deinem Link
gemerkt.

Die Bücher sind nicht so gut, wie ich es erwartet habe. Zu viele Lücken,
zu unvollständig.

kernel.h und swis.h werden bereits mit GCC mitgeliefert. Aber jetzt
suche ich noch die Dokumentation dazu.

In swis.h steht z. B.

| #define PDriver_DeclareDriver          0x080156

Heißt das, dass beim Aufruf von PDriver_DeclareDriver die Adresse
0x080156 angesprungen wird, also genau dort die Routine für den SWI
abgelegt ist? Ich versuche es nur zu verstehen.

Das erste Programm habe ich jetzt erfolgreich compiliert. Nachdem ich
OSLib nicht zum Laufen bekomme, versuche ich es jetzt halt so. Ohne SWIs
zu nutzen dürfte es hier bei mir sonst kaum mit dem Programmieren
erfolgreich weitergehen.

Alex'

-- 
http://home.chiemgau-net.de/ausserstorfer/
Sent wirelessly from RISC OS per LTE


Other related posts: