Abo
  • Services:
Anzeige
Intel Galileo Gen2
Intel Galileo Gen2 (Bild: Golem.de)

Das Windows-API kann benutzt werden

Anzeige

Bei den kompilierten Programmen handelt es sich um normale Windows-Programme. Und sie können auch Teile des normalen Win32-APIs verwenden. Leider dokumentiert Microsoft nicht, welche Einschränkungen bestehen - vermutlich betrifft das vor allem Funktionen mit Bezug auf die grafische Oberfläche.

In einem kleinen "Sketch" nutzen wir das Win32-API, um uns beim Programmstart die Windows-Version anzuzeigen zu lassen:

  1. #include "stdafx.h"
  2. #include "arduino.h"
  3. #include "windows.h"
  4.  
  5. int _tmain(int argc, TCHAR* argv[])
  6. {
  7. DWORD dwVersion = GetVersion();
  8. DWORD dwMajorVersion = (DWORD)(LOBYTE(dwVersion));
  9. DWORD dwMinorVersion = (DWORD)(HIBYTE(dwVersion));
  10.  
  11. Log(L"%d.%d\n", dwMajorVersion, dwMinorVersion);
  12.  
  13. return RunArduinoSketch();
  14. }
  15.  
  16. ...

Nun kann dieses Programm auch unter anderen Windows-Varianten auf der Kommandozeile laufen, wenn eine bestimmte DLL parallel in diesem System mitkopiert wurde (embprusr.dll). Interessanterweise liefert uns das Programm für die Windows-Variante auf dem Galileo-Board die Versionsnummer 6.3, unter Windows 8.1 Pro hingegen 6.2.

Microsoft will später noch zusätzliche APIs und C#-Integration anbieten, so dass auch Universal-Apps unter dieser Windows-Version laufen können.

Wer nach der langen Bootzeit vermutet, dass auch Programme auf der Kommandozeile lange zum Start brauchen, der irrt. Bei unseren kleinen Testprogrammen gab es beim Start über Telnet direkt auf dem Galileo keine Wartezeiten.

GPIO-Pins unter Windows nutzen

Unter Linux konnten GPIO-Pins eines Rechners schon lange über das Dateisystem angesteuert werden. Der Ansatz ist äußerst flexibel und zwingt dem Anwender keine Programmiersprache auf. Intels Implementierung des Wiring-APIs des Arduino auf dem Galileo setzt darauf auf. Der Umweg über das Dateisystem ist allerdings vergleichsweise zeitintensiv, Auswertungen im Milli- oder gar Mikrosekundentakt sind schon deswegen kaum möglich. Deshalb hat Intel auch auf eine Implementierung der pulseIn()-Funktion des Wiring-APIs verzichtet, die eine bestimmte Schnelligkeit voraussetzen würde.

Auch unter Windows können GPIO-Pins angesteuert werden, diese Funktion wurde aber lange Zeit im API für die Treiberprogrammierung versteckt.

Beim Windows für den Galileo geht Microsoft einen anderen Weg und führt das "Embedded Peripheral Usermode API" ein, das von der oben angesprochenen DLL embprusr.dll implementiert wird. Dieses API ist derzeit nicht weiter dokumentiert, lediglich ein Blick in die zugehörige C-Header-Datei gibt einige Informationen preis: So wird der Lese- wie Schreibzugriff auf GPIO-Pins unterstützt, PWM- und Analog-zu-digital-Funktionalität als auch der I2C- und SPI-Zugriff.

Um es vorwegzunehmen: analogRead() sowie digitalWrite() und digitalRead() funktionieren ohne Murren.

Viel interessanter ist, ob sich die vorhandene pulseIn()-Funktion sinnvoll nutzen lässt. Das haben wir mit einem Entfernungsmesser auf Ultraschallbasis getestet. Der Sensor übermittelt die Entfernung, indem am Echo-Anschluss ein HIGH-Signal anliegt. Die Dauer des Signals korreliert mit der gemessenen Entfernung. Allerdings ist das Signal auch bei größeren Entfernungen nur wenige Mikro- bis Millisekunden lang. Bei einem Microcontroller ist die Auswertung kein Problem, das entsprechende Programm "auf dem blanken Metall" hat die Ressourcen des Controllers exklusiv. Sobald ein Programm aber auf einem multitaskingbasierten Betriebssystem läuft, wird es schwierig.

So war es absehbar, dass unser Windows-Programm scheitern würde - zur Erinnerung: Unter Intels Ansatz mit Linux kann es nicht scheitern, weil die entsprechende Funktionalität ganz fehlt.

 Kaum Programme und TreiberEin Blick in die Implementierung 

eye home zur Startseite
KarlaHungus 04. Sep 2014

Das bringt es perfekt auf den Punkt.

Bachsau 03. Sep 2014

Mag sein dass die Veröffentlichungsdaten nicht ganz korrekt sind und NT 4 das schon...

Bachsau 02. Sep 2014

ist nicht, dass es per se ein schlechtes System ist, sondern dass es eine überladene...

aPollO2k 01. Sep 2014

Das der Zugriff auf die Dateien der SD-Karte einfach ist liegt ja einfach daran das es...

raphaelo00 31. Aug 2014

soweit ich weiß kann Windows auch SSH. Ich versteh nur nicht was einem rcon...



Anzeige

Stellenmarkt
  1. Bundesinstitut für Risikobewertung, Berlin
  2. IT Baden-Württemberg (BITBW), Stuttgart-Feuerbach
  3. Voith Digital Solutions GmbH, Heidenheim
  4. Trebing & Himstedt Prozeßautomation GmbH & Co. KG, verschiedene Einsatzorte (Home-Office)


Anzeige
Blu-ray-Angebote
  1. 16,99€ (ohne Prime bzw. unter 29€ Einkauf + 3€ Versand)
  2. (u. a. Fast & Furious 1-7 Blu-ray 24,29€, Indiana Jones Complete Blu-ray 14,76€, The Complete...
  3. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)

Folgen Sie uns
       


  1. Komplett-PC

    In Nvidias Battleboxen steckt AMDs Ryzen

  2. Internet

    Cloudflare macht IPv6 parallel zu IPv4 jetzt Pflicht

  3. Square Enix

    Neustart für das Final Fantasy 7 Remake

  4. Agesa 1006

    Ryzen unterstützt DDR4-4000

  5. Telekom Austria

    Nokia erreicht 850 MBit/s im LTE-Netz

  6. Star Trek Bridge Crew im Test

    Festgetackert im Holodeck

  7. Quantenalgorithmen

    "Morgen könnte ein Physiker die Quantenmechanik widerlegen"

  8. Astra

    ZDF bleibt bis zum Jahr 2020 per Satellit in SD verfügbar

  9. Kubic

    Opensuse startet Projekt für Container-Plattform

  10. Frühstart

    Kabelnetzbetreiber findet keine Modems für Docsis 3.1



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Sphero Lightning McQueen: Erst macht es Brummbrumm, dann verdreht es die Augen
Sphero Lightning McQueen
Erst macht es Brummbrumm, dann verdreht es die Augen

Quantencomputer: Nano-Kühlung für Qubits
Quantencomputer
Nano-Kühlung für Qubits
  1. IBM Q Mehr Qubits von IBM
  2. Quantencomputer Was sind diese Qubits?
  3. Verschlüsselung Kryptographie im Quantenzeitalter

XPS 13 (9365) im Test: Dells Convertible zeigt alte Stärken und neue Schwächen
XPS 13 (9365) im Test
Dells Convertible zeigt alte Stärken und neue Schwächen
  1. Prozessor Intel wird Thunderbolt 3 in CPUs integrieren
  2. Schnittstelle Intel pflegt endlich Linux-Treiber für Thunderbolt
  3. Asus B9440 im Test Leichtes Geschäftsnotebook liefert zu wenig Business

  1. Re: Widerlegen?

    motzerator | 00:57

  2. Re: 2020!? Und die Personalien?

    packansack | 00:48

  3. Re: Mobilfunk + Festnetz-Anschluss meiner Eltern

    LordGurke | 00:47

  4. Könnte Akamai auch gerne machen

    LordGurke | 00:44

  5. Re: FF Remakes für Switch

    packansack | 00:38


  1. 18:08

  2. 17:37

  3. 16:55

  4. 16:46

  5. 16:06

  6. 16:00

  7. 14:21

  8. 13:56


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel