- 3D-Druck Einstieg und Tipps    Werbung      
Ergebnis 1 bis 10 von 69

Thema: Intel Galileo Board

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    68
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von Mxt Beitrag anzeigen
    Das Ding ist ein Pentium, kein Mikrocontroller. Timer IRQs wie beim AVR gibt es da wahrscheinlich gar nicht. Die Arduino-Software für den Galileo implementiert meines Wissens nach gar keine Timer.
    Das Eine hat mit dem Anderen nichts zu tun.

    - Beim Mikrocontroller ist einfach alles auf einem Chip, CPU, RAM, ROM, Und die ganze Peripherie (Ports, Timer, UART usw.).
    Der Mikrocontroller ist ein, ohne zusätzliche externe Chips, voll funktionsfähiger Computer.

    - Bei der klassische CPU ist nur die CPU auf dem Chip, evtl. noch die Takterzeugung, Memory Management, DMA und Cache. An Eingängen gibts es nur Reset, NMI, IRQ und noch welche um den Bus Freizuschalten und für WAITs.
    Hier benötigt man noch jede Menge zusätzliche Hardware um einen Computer zu haben.

    - Die Intel Quark sind SoC (Systen on Chip).
    Da ist ein ganzer PC auf dem Chip, also fast alles was sich normalerweise auf dem Mainboard befindet.
    Allerdings benötigt man noch externen Speicher um einen funktionierenden Computer zu erhalten.
    Beim Intel Galileo wird ein Intel Quark SoC X1000 verwendet.

    Welche CPU bei den 3 Varianten verwendet wird, ist grundsätzlich egal.

    Praktisch ist das Ganze nur eine Kostenfrage. Kosten verursacht hauptsächlich die Chipfläche und der verwendete Prozess. Je nach Strukturgrösse bekommt man eine bestimmte Anzahl Transistoren auf 1mm2 unter.
    Nun muss man halt entscheiden ob man mit den Transistoren lieber RAM und ROM macht und eine einfache CPU oder halt umgekehrt.

    Bei der RISC-Idee ging es eigentlich darum, eine CPU mit wenig Transistoren zu haben. Mit einem Teil der gesparten Transistoren konnte man dann noch zusätzliche Register spendieren.
    Bei der Analyse von RISC-Programmen hatte sich gezeigt, dass viele der komplexen Befehle nur selten gebraucht werden, aber natürlich jede Menge Transistoren zur Implementierung benötigen. Um Transistoren bei CISC einzusparen, verwendete man µCode. Jeder CPU-Befehl wurde als kleines internes Programm auf der CPU ausgeführt, was natürlich mehrere Taktzyklen zur Ausführung benötigt. Bei RISC werden die meisten Befehle in einem Takt ausgeführt.


    Der erste RISC-µP war eigentlich der 6502.Die Idee der ehemaligen 6801-Entwickler war es, mit möglichst wenigen Transistoren, und somit kleinem Chip, einen günstigeren Prozessor zu entwickeln. Es gab anfänglich einen 6501, welcher pinkompatibel zum 6801 war, der wurde dann aber gerichtlich verboten.
    Der 6502 brauchte dann im allgemeinen für die Befehlsabarbeitung einen Takt pro Speicherzugriff. Da die Adressberechnung nur mit 8-Bit durchgeführt wurde, musste ein interner Takt eingefügt werden, wenn sich ein Übertrag vom LSB zum MSB ergab. Wegen der einfacheren Logik, machte die CPU einfach einen Dummy-Lesezugriff mit dem Zwischenresultat der Adressberechnung.

    Dieses Verhalten bedingte dann ein Umdenken bei den Peripherie-Bausteinen. Bis dahin war es üblich, beim lesen eines Statusregisters, dieses dabei gleich zurück zusetzen. Beim 6502 konnte dies dann aber durch einen Dummy-Zugriff versehentlich geschehen Bild  
    Also musste man zum Zurücksetzen extra einen Schreibzyklus verwenden.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    HaWe
    Gast
    nochmal zurück zu meiner Frage, denn das ist der eigentliche Knackpunkt:

    zu den Timer IRQs: auch der Due ist kein AVR, sondern ein 32-bit ARM Cortex, und auch der Due hat Sketch Timer-Interrupt -Libs!
    (#include <DueTimer.h> )
    Also müsste man doch auch für den Galileo Timer-Interrupts erwarten dürfen- wie geht das also genau (z.B. alle 250µs) ?

    zum MT: was gibt es da fürs Galileo-Sketch? Galileo ist ja Linux-basiert und Sketch verwendet auch (verdeckt) gpp C/C++, und für Linux gibt es POSIX-Libs, die man per gpp C #includen kann -
    (#include <pthread.h>)
    was geht also hier beim Galileo mit Sketch für Multitasking?

    Was man also bräuchte, wäre eine ganz klare und eindeutige Beschreibung und Anleitung mit Beispiel-Sketchen, wie man Zimer-Interrupts und MT per Galileo-C-Sketch impementiert!

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Vielleicht habe ich mich ungünstig ausgedrückt. Das Ding ist ein PC mit Pentium Prozessor. Deshalb läuft auch Windows drauf. PCs haben keine solchen Timer wie AVRs.

    @HaWe Eine pthread.h müsste aber in der Arduino IDE sein. Dort ist ja auch der g++ mit seinen Headerdateien. Es wird ja nur die fertig übersetzte Datei ins Linux kopiert.

    Das Linux kommt übrigens in eine Datei (!) auf der SD-Karte. Da die Karte mit Fat32 formatiert ist, kann die Datei und damit der Speicherplatz des Linux nie größer werden als 4 GB. Unter Windows stehen dagegen die ganzen maximalen 32 GB einer SDHC-Karte zur Verfügung. SXDC-Karten kann die Hardware nicht verwenden.

  4. #4
    HaWe
    Gast
    hi,
    nein, pthread wird nicht statisch sondern dynamisch verlinkt. Alle Bibliotheken müssen sich auf dem Linux-Zielsystem befinden!
    per makefile heisst der Befehl dazu
    LDFLAGS=-lpthread

    man muss dazu die Headerdatei statisch einbinden, aber die ganzen .c files dynamisch verlinken auf der Zielplattform.
    Nicht jedes Linux ist aber POSIX-kompatibel, und einfach die POSIX-Dateien zum Linux "rüberschieben" reicht nicht.

    Aber eigentlich wollte ich ja mit dem ganzen makefile-Mist auch überhaupt nichts mehr zu tun haben... Bild  

    ps,
    wenn Sketch auch auf Windows läuft, wäre mir das auch recht-
    Hauptsache: Timer-Intr für 250µs-Echtzeit DPin-Polling und preemptives Multitasking WIE mit pthread etc.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Nein, so kann das nicht gehen. Da gibt es keine .c Dateien auf der Zielplattform, insbesondere keinen C-Compiler.

    Das Linux ist übrigens nicht mal LSB kompatibel, man kann keine Binärdateien von anderen PC Linuxen laufen lassen.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    68
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von Mxt Beitrag anzeigen
    Vielleicht habe ich mich ungünstig ausgedrückt. Das Ding ist ein PC mit Pentium Prozessor. Deshalb läuft auch Windows drauf. PCs haben keine solchen Timer wie AVRs.
    Ja, die Timer sind da etwas einfacher gestaltet.
    Es sind beim PC aber 3 oder 6 16-Bit Timer vorhanden, welche Interrupts auslösen können.
    Über den Interrupt-Controller können den Timern dann auch eigene Interrupt-Vektoren zugewiesen werden.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  7. #7
    HaWe
    Gast
    die x86-Intr kenn ich sogar noch aus alten DOS-Zeiten!
    Dabei würden für Sketch-Programme schon 1-2 ausreichen, auf die man manuell Zugriff hätte.
    Z.B. eben, um Quadraturencoderstellungen im 250µs-Takt auszulesen und dann die Motorencoderstellung zu berechnen.
    Aber wie?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Es haben wohl schon Leute daran gearbeitet FreeDOS auf dem Galileo zum Laufen zu bringen. Das ist aber nicht ganz so einfach, es ist zwar ein Pentium aber natürlich mit UEFI statt BIOS.

    Wie dem auch sei, die MS iot Variante werde ich weiter im Blick behalten, vielleicht kommt die demnächst auch für bessere Hardware. Was ich ursprünglich mit dem Galileo machen wollte läuft mittlerweile sehr erfolgreich mit einem LPC4088.

    Falls im Frühjahr das Renesas Peach auch in Europa verkauft wird, gibt es dann auch mbed Boards mit 400 MHz. Und ST Boards mit Cortex M7 kommen sicher auch noch ...

  9. #9
    HaWe
    Gast
    Die meisten MT-Libs wie FreeRTOS oder OSEK sind irrsinnig schwierig zu benutzen.

    Das Scheduler-System des Due, einfach neue parallel laufende loops zu starten (loop, loop1, loop2,...) , wäre genau richtig, ein RTOS muss es noch nicht mal sein.
    Allerdings müsste ein Scheduler für das Umschalten zwischen den Zeitscheiben sorgen (preemptiv eben).

    Ich brauche mir aber nur anzugucken, wie schwierig OSEK auf dem NXT (nxtOSEK mit Toppers C) zu implementieren ist - nee danke.
    Mit NXC ist das perfekt gelöst:
    start (taskname)
    stop (taskname)
    mehr braucht man da nicht.

    Wer z.B. auch POSIX pthread kennt, der weiss, was ich meine und wie es machbar und zumutbar ist für Hobby-Programmierer.
    Oder MT nach C11-Standard natürlich.

    Ich las gerade woanders aber auch das Stichwort "Arduino Tre".
    Nicht dass es jetzt hier zu OT wird -
    Wenn es nun den (v.a. ntl für den Sitara-Hauptprozessor) mit Sketch programmierbar gäbe - das könnte auch der Hit werden.
    Aber eben komplett mit der Sketch IDE und mit den bekannten automatischen link/makefile- und Terminalfenster-Funktionalitäten
    (ok, vllt endlich einem bessren Editor),

    ...aber nicht mit dem Eclipse- und dem ssh- und putty-Mist!

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    68
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von Mxt Beitrag anzeigen
    Falls im Frühjahr das Renesas Peach auch in Europa verkauft wird, gibt es dann auch mbed Boards mit 400 MHz. Und ST Boards mit Cortex M7 kommen sicher auch noch ...
    Das Datenblatt des RZ/A1H ist etwas fett geworden, über 3'000 Seiten.

    Renesas scheint recht zuversichtlich zu sein, die RTC geht bis zum Jahr 9'999 Bild  

    Zudem scheinen die alles auf den Chip gepackt zu haben, was die Patente hergaben.


    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Ähnliche Themen

  1. Intel Galileo
    Von Mxt im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 23.08.2014, 19:47
  2. Intel Galileo: Generation 2 im August
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 15.07.2014, 15:40
  3. Poster von Intels Galileo-Board
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 13.01.2014, 16:00
  4. Test: Intels Galileo-Board
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 09.12.2013, 17:00
  5. Intel MCS-96 Board
    Von TheDarkRose im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 21.04.2011, 07:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      Labornetzteil AliExpress