Einfache USB Nutzung (Assembler)

  • Hallo,

    ich suche eine einfache Art, an die Signale der USB-Schnittstelle zu kommen.

    Da ich den Raspi auf der untersten Ebene Programmiere, gibt es bis dahin keine Treiber. Mir würden dazu schon die Adressen reichen, welche mir die Signale bieten, oder wie ich den USB-Bus ansprechen muss, damit er mir ein Ergebnis liefert. Ich möchte auch gar nicht einen Treiber benutzen, sondern wirklich Hardwarenah programmieren. Eventuell aus den Ergebnissen selbst, dann für mich angepasstes Script erstellen.

    Leider hat mir eine Internetsuche bisher nicht das richtige gebracht. (Eventuell suche ich falsch???)

    Hat schon jemand sowas ähnliches gemacht?

    Gruß, Satyria

  • Hallo satyria,
    das ist schon sehr speziell. Ich würde an Deiner Stelle direkt im Sourcecode des USB Moduls für den Kernel suchen. Evtl. musst Du Dich dann erst durch den C Code "beissen" - aber die Menge an Code sollte auf dem Level noch überschaubar sein (hoffe ich mal für Dich ;) ).

    Gruß, mmi

  • Hallo Satyria,

    was Du suchst, steht in Kapitel 15 von Broadcom BCM 2835 ARM Peripherals.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Für einen ersten Blick in den Sourcecode des Kernels schau mal
    hier

    Ich weiß, Du suchst einen einfacheren Ansatz - aber nachdem Du absolut low level möchtest, wird es wohl nur diesen Weg geben (befürchte ich mal). ;)

    Mehr dabei helfen kann ich Dir leider auch nicht.

    EDIT:
    Oder wie es Andreas gerade vorschlägt.

  • Quote

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Für einen ersten Blick in den Sourcecode des Kernels schau mal [/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]hier[/font]

    Ja, über diese Seite bin ich bereits gefallen. Auf jeden Fall liegt sehr viel Arbeit vor mir.

    Zunächst möchte ich nur meine Tastatur und die Maus abfragen können.

    Sollte jemand noch andere Hinweise haben, bin ich sehr dankbar!

    Gruß, Satyria


  • Darf ich fragen, was du vorhast? Nur zu Übungszwecken? Oder ist das Ziel, dass es schnell läuft?

    Natürlich darfst du Fragen :)

    Hm, In einer Hinsicht ist es zu Übungszwecken...

    Ich hab mir den Raspi damals gekauft, um auf ihm zu programmieren. Überall stand, dass der Raspi genau dafür entwickelt wurde. Die alten Zeiten der Homecomputer soll damit wieder hervorgeholt werden. Leider bin ich da etwas enttäuscht. Meiner Meinung nach, gibt es zu wenig Unterstützung, um genau dies zu machen. Das fängt ja genau hier an, dass es keine LowLevel Beschreibungen für das USB gibt, weil sich Broadcom weigert, mehr Information herauszugeben. Eventuell war hier die Wahl dieses Herstellers nicht die richtige... Aber egal, irgendwann ist dieses Problem auch geknackt.

    In zweiter Hinsicht entwickel ich gerade ein Tutor (http://www.satyria.de/assem (ist noch in Entwicklung!!!)) zur Assemblerprogrammierung auf dem Raspi, bei dem ich auch auf die Hardware eingehen will. Darunter fällt auch das USB. Grafik ist bereits erledigt und Sound ist nicht weit weg. Aber USB beiße ich mir die Zähne aus.... grrrr... Eventuell kommt ja die Frage, warum ich das mache: Lese einfach den Absatz oben drüber... Der Rechner soll für alle einfach sein zu programmieren und dazu will ich meinen Beitrag leisten...

    Egal, also wieder mein Aufruf, wer hat zu dem Thema etwas gefunden? Oder hat Ideen...

    Gruß, Satyria

  • Das Projekt gefällt mir.
    Ich hatte befürchtet, dass der Grund für ASM ist, dass es das schnellste sei, aber da das nicht der Fall ist, ist alles gut.
    Mir ist ASM zu fummelig... ich muss diesen Monat noch eine Garbage-Collection auf ASM-Ebene umsetzen... das reicht mir dann wohl für die nächsten Jahre.
    Aber dir viel Erfolg.
    Informationen zum Thema hab ich leider keine, sorry.

  • Nein, Nein.... Assembler ist schnell, aber nein. Wenn man schnellen Code haben möchte, ist Assembler nicht immer die beste Wahl...

    Ich hatte da mal einen Vergleich. Da ging es darum, ein Mandelbrot zu berechnen. Beide Sourcen (C und Assembler) verwendeten völlig identischen Berechnungswege, so dass man davon ausgehen konnte, dass beide eigentlich das gleiche machen. Aber nein, der C-Code war um ca. 3/4 schneller in der Berechnung als der Assemblercode. Aber woran lag das: Der C-Compiler hat den Code Optimiert und dadurch die Berechnung beschleunigt. Ich selbst wäre auf diese Art der Optimierung nie gekommen.

    Aber warum mache ich dann Assembler? Es ist linear. Ich kann die Hardware in meinen Händen fühlen. Er macht genau das, was ich ihm sage (aber auch manchmal nichts :lol:). Es ist der Reiz, aus nichts, was zu machen...
    Ich programmiere aber auch in C, Pascal, Java, Javascript, Perl, PHP...

    Gruß, Satyria

  • Hallo Satyria,

    kennst Du das Assembler-Tutorial hier schon? Dort sind momentan über 20 Kapitel zur Programmierung des Raspberry Pi in Assembler enthalten.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.


  • Hallo Satyria,

    kennst Du das Assembler-Tutorial hier schon? Dort sind momentan über 20 Kapitel zur Programmierung des Raspberry Pi in Assembler enthalten.

    Beste Grüße

    Andreas

    Danke Andreas, ja die Seite kenne ich schon. Ich finde diese sehr gut! Ich selbst versuche da eine andere Art, dass ganze aufzubauen. Ich möchte da auch viel Tiefer in das System eintauchen. Halt LowLevel...

    Gruß, Satyria

  • Quote from "Horroreyes" pid='173864' dateline='1441899808'


    Das Projekt gefällt mir.
    Ich hatte befürchtet, dass der Grund für ASM ist, dass es das schnellste sei, aber da das nicht der Fall ist, ist alles gut.
    Mir ist ASM zu fummelig... ich muss diesen Monat noch eine Garbage-Collection auf ASM-Ebene umsetzen... das reicht mir dann wohl für die nächsten Jahre.
    Aber dir viel Erfolg.
    Informationen zum Thema hab ich leider keine, sorry.

    Warum befürchtet? Ust doch das schnellste, oder?

  • Hallo satyria,
    vor Jahren habe ich mit USB im lowlevel Bereich beschäftigt.
    Allerdings auf dem x86.
    Das Thema ist sehr Umfangreich, aber hast du sicher schon bemerkt.
    Wenn du möchtest kann ich dir den Code zur Verfügung stellen.
    Es wird aber eine Weile benötigen, der 86-PC ist leider gestorben, und ich muss erst mal
    die Kopien sichten.
    Schreib mir, wenn du Interesse hast einfach eine PN, sonst spare ich mir die Mühe.
    Auf dem Pi habe ich auch ein wenig rumprobiert, habe aber den fertigen Treiber von Cambridge
    benutzt.
    Wie gesagt, es ist sehr Umfangreich. Du wirst dich wohl auch mit den USB-Specificationen
    beschäftigen müssen.
    zB.
    http://www.usb.org/developers/docs/usb20_docs/

    Ich nehme mal an Peter Lemon hast du schon gesichtet?
    https://github.com/PeterLemon/RaspberryPi

    Gruß
    Relbmessa

    PS
    soll es auch ein eigenes BS für den Pi werden?

    Edited once, last by Relbmessa (August 12, 2017 at 8:35 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!