Tutorial Arduino programmieren,

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Re: Tutorial Arduino programmieren,

Beitragvon Mathias » 16. Okt 2017, 16:23 Re: Tutorial Arduino programmieren,

Das extra (SVN) war wohl nötig. Jetzt hat es auch geklappt.

Anscheinend hast du diesen Schritt unter Windows mal gemacht, ansonsten hätte Windows auch blöd getan.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 16. Okt 2017, 17:39 Re: Tutorial Arduino programmieren,

fpcupdeluxe kann unter Windows GIT und SVN laden, falls nicht im Pfad gefunden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3258
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 16. Okt 2017, 19:02 Re: Tutorial Arduino programmieren,

fpcupdeluxe kann unter Windows GIT und SVN laden, falls nicht im Pfad gefunden.

Heisst dies, unter Windows braucht es keine Installation von Subversion ?'
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 16. Okt 2017, 20:19 Re: Tutorial Arduino programmieren,

Nein in Windows hab ich nix spezielles unternommen.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 16. Okt 2017, 20:44 Re: Tutorial Arduino programmieren,

Nein in Windows hab ich nix spezielles unternommen.

So wie es scheint, braucht es Subversion unter Windows nicht, ich habe fpcupdelux gerade unter Win10 gestartet und da führt er SVN-Kommandos ohne Fehler aus.
Nur schläft das ganze ein, das es in der VB läuft.

Das es bei dir und af0815 ohne läuft, werde ich das Tutorial anpassen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 16. Okt 2017, 20:55 Re: Tutorial Arduino programmieren,

Bei WIndows wird schon seit FPCUP das so gemacht.
Siehe http://wiki.lazarus.freepascal.org/fpcup In der Wiki zu FPCUP steht eine Menge an Infos wenn man in den Einstellungen was für sich herrichten will.
Code: Alles auswählen
On Windows, it can also serve as a "bare metal" installer: it can download a subversion client, binutils (make.exe etc).


Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3258
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 16. Okt 2017, 21:04 Re: Tutorial Arduino programmieren,

Dann werde ich mein Tutorial bei Gelegenheit anpassen. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 16. Okt 2017, 21:09 Re: Tutorial Arduino programmieren,

Ich würde mal sagen ich bin der Ahnungsloseste hier in der Runde. Wenn es hier funktioniert, funktioniert es überall. :-) :-)

Dumme Frage, was in den AVR muss ist schlussendlich das erzeugte *.bin File?
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 17. Okt 2017, 17:18 Re: Tutorial Arduino programmieren,

Dumme Frage, was in den AVR muss ist schlussendlich das erzeugte *.bin File?

Das ist eine interessante Frage, Lazarus erzeugt eine elf, bin und hex.
An averdude übergibt man dann die hex, obwohl dies eine Zext-Datei ist.

Vielleicht kann da Timm Thaler helfen. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon kupferstecher » 17. Okt 2017, 18:11 Re: Tutorial Arduino programmieren,

Marc hat geschrieben:Dumme Frage, was in den AVR muss ist schlussendlich das erzeugte *.bin File?

Die .hex-Datei hat im Grunde den gleichen Inhalt wie die .bin-Datei, jedoch sind die Binärdaten in Ascii codiert in hexadezimaler Schreibweise dargestellt, d.h. in einem normalen Editor lesbar. Außerdem sind noch die Datenadressen drin, so kann die .hex-Datei z.B. bei Adresse 0x80 anfangen. Die .bin-Datei ist gar nicht codiert, die Binärdaten stehen direkt hintereinander beginnend mit der niedrigsten Adresse. Einige Programmer schlucken beide Formate, normalerweise verwendet man die .hex-Datei.

Zur .elf-Datei kann ich nichts sagen...
kupferstecher
 
Beiträge: 67
Registriert: 17. Nov 2016, 11:52

Beitragvon Mathias » 17. Okt 2017, 19:25 Re: Tutorial Arduino programmieren,

Die .hex-Datei hat im Grunde den gleichen Inhalt wie die .bin-Datei, jedoch sind die Binärdaten in Ascii codiert in hexadezimaler Schreibweise dargestellt,

Dies habe ich fast vermutet.

Das Tutorial habe ich wegen Windows und SVN noch angepasst.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 17. Okt 2017, 19:33 Re: Tutorial Arduino programmieren,

Danke für die Bemühungen.
Ich habe mal zwei Atmega328 bestellt. Da kann ich dann mal probieren ob ich das Hex oder bin File in den AVR kriege.
Jugend forscht. :-)

Danke auch für das Tutorial, die Zeit muss mann sich ja erst mal nehmen.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 17. Okt 2017, 19:41 Re: Tutorial Arduino programmieren,

Ich habe mal zwei Atmega328 bestellt. Da kann ich dann mal probieren ob ich das Hex oder bin File in den AVR kriege.

Denke aber daran, das die Zeile mit averdude angepasst werden muss, ein Arduino wird anders angesteuert als ein nackter Atmega328.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3195
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 17. Okt 2017, 21:19 Re: Tutorial Arduino programmieren,

Mathias hat geschrieben:Das ist eine interessante Frage, Lazarus erzeugt eine elf, bin und hex.
An averdude übergibt man dann die hex, obwohl dies eine Zext-Datei ist.

Vielleicht kann da Timm Thaler helfen. :wink:


Leicht. ;-)

Lazarus erzeugt die gar nicht. Lazarus kompiliert die einzelnen Pascal-Dateien Deines Projektes zu Assembler-Code. Das sind die *.s-Dateien. Diese werden dann den avr-embedded-exes aus den Binutils übergeben, die einen Linker und Assembler enthalten. Erst diese erzeugen dann den Maschinencode, wie sie es auch mit jedem selbstgeschriebenen Assembler-Code machen würden* (soweit ich das verstanden habe).

Die *.bin enthält den reinen Maschinencode, so wie er später im Controller stehen wird. Der hat aber den Nachteil auch Nullzeichen (0x00) oder Steuerzeichen enthalten zu können, quasi den ganzen Zeichenraum von 0x00 bis 0xFF. Das kann bei Übertragung oder beim Dateilesen Probleme machen, deswegen nimmt man den eigentlich nicht zum Programmieren. Wenn man die *.bin nicht braucht, kann man die Erzeugung auch unterdrücken bzw. wieder löschen lassen.

Die *.elf ist ein sogenanntes production file, welches neben dem Programmcode auch noch EEPROM-Inhalt und Fusebit-Konfiguration beinhaltet. Vorteil, man hat alles zusammen, Nachteil, manche Programmer können damit nichts anfangen.

Die *.hex ist ein uraltes universelles Format, welches schon die alten Römen zum Programmieren ihrer Katapulte verwendeten: https://de.wikipedia.org/wiki/Intel_HEX Großer Vorteil, es enthält den Maschinencode in Hex-Darstellung, daher keine Steuerzeichen die Ärger machen können, und es enthält Adressen und Checksummen. Nachteil, durch die Hex-Darstellung braucht es zwei Bytes pro Flashbyte, die Datei ist doppelt so groß. Die Hex-Daten werden vom Programmer wieder in Maschinenbytes zusammengefasst. Wenn euer Opa euch erzählt, wie er früher Maschinencode programmiert hat, dann hat er solche Hex-Zahlen in das Programmiergerät getippert.

Da die *.hex eigentlich** keine EEPROM-Daten enthält, bekommt man wenn man EEPROM-Konstanten ablegt (wobei ich noch nicht probiert habe wie das in Pascal geht) noch eine *.eep-Datei. Diese muss zusätzlich zur *.hex-Datei gebrannt werden.

*) Mit avr-embedded-objdump kann man sich übrigens aus einer *.bin oder *.hex wieder Assembler-Code machen, um zu überprüfen was da zusammenkompiliert wird - oder um mal zu gucken, was andere so machen. Dazu muss man allerdings bißchen Assembler verstehen.

**) Da beim AVR der EEPROM hinter dem Flash liegt, kann man EEPROM-Daten mit in das *.hex-File schreiben und an den AVR übertragen. Allerdings können a) nicht alle Programmer damit umgehen und b) wenn man mit einem Bootloader programmiert kann es passieren, dass man in den Bootloader hineinschreibt, bis er "abstürzt" (er überschreibt sich selber bis zur Funktionsunfähigkeit) - und dann isser tot.
Timm Thaler
 
Beiträge: 431
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.6 FPC3.0.0, Raspbian Jessie Laz1.6 FPC3.0.0 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Timm Thaler » 17. Okt 2017, 21:29 Re: Tutorial Arduino programmieren,

Marc hat geschrieben:Ich habe mal zwei Atmega328 bestellt. Da kann ich dann mal probieren ob ich das Hex oder bin File in den AVR kriege.


Wenn Du noch kein Programmiergerät hast, und keine Lust hast einen überteuerten Arduino mit Bootloader zu kaufen, aber noch einen Windows-PC mit richtiger Hardware-RS232 oder sogar Parallelport, dann kannst Du auch mit Ponyprog und einem einfachen selbstgebauten Programmieradapter aus ein paar Widerständen den Code in den AVR brennen: http://www.lancos.com/prog.html Und ja, es kann auch Atmega328.
Timm Thaler
 
Beiträge: 431
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.6 FPC3.0.0, Raspbian Jessie Laz1.6 FPC3.0.0 | 
CPU-Target: Raspberry Pi 3
Nach oben

» Weitere Beiträge siehe nächste Seite »
VorherigeNächste

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried