-
Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: lisgoem8 29.07.14 - 09:47
Ich zweifel daran, dass man unter Windows die GPIO-Schnittstelle überhaupt leicht ansteuern kann.
Unter Linux geht das mit jedem Shell-Script mühelos und kinderleicht. Das bekommt man sogar ohne wirkliche Programmiererfahrung hin.
Doch unter Windows wird man nicht an der C-Programmierung vorbeikommen.
Die DOS Umgebung / Eingabeaufforderung arbeitet seit Jahrzehnten nicht sauber. Werte holen kann man meist nur kompliziert mit errorleveln. Damit rechnen geht absolut nicht. Und wenn man mal mit Pipes arbeitet, kommt nur ein so eine art 7bit code noch raus.
Und die Powershell die alles "besser" machen soll, läuft natürlich auf .Net. Schon das zu initiieren dauert ein paar Sekunden.
Wenn es schlimmt kommt, braucht man dazu sogar noch Adminrechte, dass es sich ja um einen direkten Hardwarezugriff handelt.
Bin aber trotzdem gespannt, zweifel aber schon jetzt am Erfolg, da ich Windows schon zu lange kenne. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Pwnie2012 29.07.14 - 10:16
In Linux ist der Kern der GPIO ansteuerung doch auch C, oder? Man muss ja essenziell register ändern, und das geht mit c (oder assembler). Wenn man in Windows ein universelles C tool macht, kann man dieses als normale utility veröffentlichen, also hab einfach Hoffnung, dass einer der hunderten Entwickler da draußen sowas baut XD
-
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: HubertHans 29.07.14 - 10:19
lisgoem8 schrieb:
--------------------------------------------------------------------------------
> Ich zweifel daran, dass man unter Windows die GPIO-Schnittstelle überhaupt
> leicht ansteuern kann.
>
> Unter Linux geht das mit jedem Shell-Script mühelos und kinderleicht. Das
> bekommt man sogar ohne wirkliche Programmiererfahrung hin.
>
> Doch unter Windows wird man nicht an der C-Programmierung vorbeikommen.
>
> Die DOS Umgebung / Eingabeaufforderung arbeitet seit Jahrzehnten nicht
> sauber. Werte holen kann man meist nur kompliziert mit errorleveln. Damit
> rechnen geht absolut nicht. Und wenn man mal mit Pipes arbeitet, kommt nur
> ein so eine art 7bit code noch raus.
>
> Und die Powershell die alles "besser" machen soll, läuft natürlich auf
> .Net. Schon das zu initiieren dauert ein paar Sekunden.
>
> Wenn es schlimmt kommt, braucht man dazu sogar noch Adminrechte, dass es
> sich ja um einen direkten Hardwarezugriff handelt.
>
> Bin aber trotzdem gespannt, zweifel aber schon jetzt am Erfolg, da ich
> Windows schon zu lange kenne.
Seit wann hat NT eine DOS-Umgebung? -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: coastbrot 29.07.14 - 10:32
Ich habe zuhause einen NetDuino welcher sich hervorragend über C# im Visual Studio programmieren lässt.
Vielleicht bohrt Microsoft dafür das .NetMF etwas auf. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Lala Satalin Deviluke 29.07.14 - 10:34
Er hat keine Ahnung von Windows. Wieso sollte es schwierig sein GPIO und co. mit Windows anzusprechen?
Grüße vom Planeten Deviluke! -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Bigfoo29 29.07.14 - 10:35
"cmd" ist ein 16bit-Emulator des früheren "echten" 16bit-command.com.
Ich denke, darauf bezieht er sich.
Historisches:
Unter Win2k noch ohne Audio-Unterstützung wurde diese für "cmd" unter XP nachgereicht. (Unter "Win2k ließ sich das über externe Emulatoren und mit Admin-Berechtigungen "nachrüsten")
Regards. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Lala Satalin Deviluke 29.07.14 - 10:36
"cmd" läuft NICHT auf 16 Bit!
Grüße vom Planeten Deviluke!
1 mal bearbeitet, zuletzt am 29.07.14 10:36 durch Lala Satalin Deviluke. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: ansi4713 29.07.14 - 10:51
Pwnie2012 schrieb:
--------------------------------------------------------------------------------
> In Linux ist der Kern der GPIO ansteuerung doch auch C, oder? Man muss ja
> essenziell register ändern, und das geht mit c (oder assembler). ...
Äh, unter Linux ist alles eine Datei. Somit kann man auch die GPIO direkt als Datei ansprechen...
Beispiel vom Rapberry Pi:
#!/bin/sh
# Initialisieren des GPIO 0
echo "0" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio0/direction
# und Einschalten
echo "1" > /sys/class/gpio/gpio0/value
Bit denne...
ansi4713 -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: lisgoem8 29.07.14 - 11:40
ansi4713 schrieb:
--------------------------------------------------------------------------------
> Pwnie2012 schrieb:
> ---------------------------------------------------------------------------
> -----
> > In Linux ist der Kern der GPIO ansteuerung doch auch C, oder? Man muss
> ja
> > essenziell register ändern, und das geht mit c (oder assembler). ...
>
> Äh, unter Linux ist alles eine Datei. Somit kann man auch die GPIO direkt
> als Datei ansprechen...
>
> Beispiel vom Rapberry Pi:
>
> #!/bin/sh
>
> # Initialisieren des GPIO 0
> echo "0" > /sys/class/gpio/export
> echo "out" > /sys/class/gpio/gpio0/direction
>
> # und Einschalten
> echo "1" > /sys/class/gpio/gpio0/value
genau - recht einfach. Nehmen wir nur mal an Windows hätte sowas sogar endlich dieses moderne Dateisystem statt immer noch auf A:-Z: von DOS-Zeiten zu setzen.
echo "0" > /sys/class/gpio/import ## UAC setzt sicherlich hier schon ein
cur=$(cat /sys/class/gpio/gpio0/value) ## <<< Mir ist keine geeignete Methode bekannt, die einer Variable so etwas zu weise kann.
Vielleicht so
type /sys/class/gpio/gpio0/value | find /I "1" und danach set cur=%errorlevel% .
Nun vielleicht das ganze noch in einer Schleife (da wird man sich wohl mit goto behelfen müssen) und es alle 30 Sekunden erneut prüft. uff. ein sleep gibt es nicht .... ok dann ein ping localhost -n 30.
Ganz ehrlich, das sind nur schmutzige Methoden um irgendwie ans Ziel zukommen. Aber sowas sollte man echt nicht in den ersten Programmierschritten tun. Gerade dieses Spaghetti-GOTO.
Vielleicht nehmen wir doch die powershell und bemerken, dass deren Start schon 200 MB RAM "verpulvert".
So und nun noch eine Sache die Windows endgültig zu fall bringt.
Ich möchte den Datenträger readonly benutzen, da manchmal der Strom ausfällt (bspw. wenn es - wie so macher PI auch - am USB des TVs hängt) und ich keine störende Datei Reparatur Operationen haben möchte.
Mit Linux ist das schon schwierig - da es auch immer mehr auch speichern will. Aber dank das UNIONFS ist es mit tricks trotzdem möglich (Knoppix hat das schon vor Jahren vorgemacht das es geht - und so kann man auch mal eine Installation testen, da es sich wie eine Sandbox verhält).
Unter DOS ging das damals noch. Windows 3.11 hätte man vielleicht heute in eine RAM-Disk Verfrachten können. Aber ein heutiges Modernes Windows weigert sich quasi da zu arbeiten. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: non_sense 29.07.14 - 12:29
Und das Microsoft eine Bibliothek zur Verfügung stellt, ist dir noch nicht in den Sinn gekommen?
-
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: AllDayPiano 29.07.14 - 12:45
lisgoem8 schrieb:
--------------------------------------------------------------------------------
> Doch unter Windows wird man nicht an der C-Programmierung vorbeikommen.
Verdammt, ich dachte ich würde an genau dieser einen C-Programmierung vorbeikommen -.- -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Pukys 29.07.14 - 13:19
Das Gehampelt mit der Shell: -- da wird es (wenn nicht von MS selbst, dann von einem Bastler), ein kleines Tool geben, z.B. gpio.exe:
gpio 1 /set output
gpio 1 high
Fertig. Zur Not gibt es noch einen Hintergrundservice, der die Aktionen übernimmt, dann muß man das nicht mal als Admin machen.
Und was das ReadOnly-machen der Datenträger angibt, so gibt es sogar zwei Lösungen: entweder der EWF-Treiber oder Windows Steady State.
Beide Lösungen existieren auf jeden Fall für Windows XP, ob unter Windows 8.1, ist mir unbekannt.
Aber soviel ist klar: Ohne eine schreibgeschützte Systempartition und die Fähigkeit, aus einem Flash zu booten, ist das System unbrauchbar.
Abgesehen davon, daß 250 Euronen für eine Bastelkiste deutlich zu teuer ist.
Bei mir persönlich wäre die Schmerzgrenze für solche Bastelbuden bei 100 Euro, da man davon ausgehen muß, daß man ein Board mal brickt oder in ein Amperewölkchen verwandelt. Da ist de Verlust noch verschmerzbar, bei 250 Euro würde ich mich sehr ärgern. Da lockt auch die höhere Rechenleistung nicht. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: HubertHans 29.07.14 - 14:00
Bigfoo29 schrieb:
--------------------------------------------------------------------------------
> "cmd" ist ein 16bit-Emulator des früheren "echten" 16bit-command.com.
>
> Ich denke, darauf bezieht er sich.
>
> Historisches:
> Unter Win2k noch ohne Audio-Unterstützung wurde diese für "cmd" unter XP
> nachgereicht. (Unter "Win2k ließ sich das über externe Emulatoren und mit
> Admin-Berechtigungen "nachrüsten")
>
> Regards.
cmd ist ein Kommandozeileninterpreter, eine Shell! Mit Command.com hat das herzlich wenig zu tun, bis auf Syntax. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: jdf 29.07.14 - 22:21
Pukys schrieb:
--------------------------------------------------------------------------------
> Das Gehampelt mit der Shell: -- da wird es (wenn nicht von MS selbst, dann
> von einem Bastler), ein kleines Tool geben, z.B. gpio.exe:
>
> gpio 1 /set output
> gpio 1 high
>
> Fertig. Zur Not gibt es noch einen Hintergrundservice, der die Aktionen
> übernimmt, dann muß man das nicht mal als Admin machen.
> Und was das ReadOnly-machen der Datenträger angibt, so gibt es sogar zwei
> Lösungen: entweder der EWF-Treiber oder Windows Steady State.
> Beide Lösungen existieren auf jeden Fall für Windows XP, ob unter Windows
> 8.1, ist mir unbekannt.
Ja supi, da ist ja dann immens viel "gelernt". Der Witz bei den Büchsen (und das erklärte Ziel hinter dem Raspberry) ist es doch gerade, das Bewusstsein wieder dafür zu schärfen, was hinter den Kulissen abläuft (Datenwert --> GPIO --> Leitung --> Strom fließt) - und nicht, genau diese Funktionalität hinter Layern und Bibliotheken zu kapseln? Erscheint mir absolut unsinnig....
>
> Aber soviel ist klar: Ohne eine schreibgeschützte Systempartition und die
> Fähigkeit, aus einem Flash zu booten, ist das System unbrauchbar.
>
> Abgesehen davon, daß 250 Euronen für eine Bastelkiste deutlich zu teuer
> ist.
> Bei mir persönlich wäre die Schmerzgrenze für solche Bastelbuden bei 100
> Euro, da man davon ausgehen muß, daß man ein Board mal brickt oder in ein
> Amperewölkchen verwandelt. Da ist de Verlust noch verschmerzbar, bei 250
> Euro würde ich mich sehr ärgern. Da lockt auch die höhere Rechenleistung
> nicht.
Da gehen wir konform - weder Fisch, noch Fleisch, das Teil - ein weiterer, diesmal hoffentlich erfolgloser Versuch von MS, einen gut bestückten Nischenmarkt zu vereinnahmen. Netbooks mit einem schmalbrüstigen Linux waren z.B. sehr gut für viele Anwendungen geeignet (Prä-Tablet-Ära halt) - nachdem MS den Markt mit völlig überladenen XP-Schwergewichten vereinnahmt, und die Hardware damit zu lahemn Krücken degradiert hatte, war das Segment gegessen... -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Bigfoo29 30.07.14 - 16:49
Das ist so korrekt. Ich habe das mit der - in 32-Bit-Umgebungen - wohl zusätzlich vorhandenen "command.com" verwechselt. Die liefert tatsächlich eine komplette 16Bit-Emulation. ( -> http://de.wikipedia.org/wiki/COMMAND.COM#cmd.exe )
Faktisch habe ich die Zeiten jedenfalls noch gut in Erinnerung, als wir unter Win2k versuchten, die DOS-Spiele (wie Dark Forces) wieder zum Laufen zu bekommen...
Regards. -
Re: Bemerkung zu und Windows: GPIO, I2C, I2S, UART, SDIO
Autor: Bigfoo29 30.07.14 - 16:51
Das war auch nicht der Punkt. "cmd" war als 16Bit-Emulation gemeint. (Das steht auch korrekt im anderen Post und wurde dort entsprechend beantwortet.)
Regards.



