Neues Unterforum: Embedded, Embedded AVR

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.
Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Marc »

Hallo Mathias

Was heisst 'tote Hose'? Ich bin immer noch sehr sehr interessiert! Nur finde ich keinen Einstieg.
Ich lese einfach mal interessiert mit. Da bin ich wohl nicht der Einzige.

Ich habe bis jetzt erst fpcupdeluxe auf win7 am laufen. Unter linux läuft mir das nicht.
Da konnte ich so eine trunk installieren, mit AVR und embedded.
Das demo 'mega328p' von kupferstecher habe ich versucht zu compilieren. Das wurde bis jetzt ja schon 4 mal heruntergeladen. :-)
Lazarus (1.9.0) gibt mir die Fehlermeldung : fpc.exe does not support target avr-embedded.

Scheint doch noch extrem experimentell zu sein das Ganze, und noch nichts für Anfänger.
Will das alles sehr gerne testen, falls es zum laufen kommt.
Good code comes from experience, experience comes from bad code.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Timm Thaler »

Marc hat geschrieben:Lazarus (1.9.0) gibt mir die Fehlermeldung : fpc.exe does not support target avr-embedded.


Da stimmen einfach die Compilereinstellungen nicht. Du kannst für jedes Projekt unter Projekteinstellungen => Compiler die Zielplattform eingeben. Damit kannst Du unter Windows ein Programm auch für Linux, oder den Raspi (Linux ARM), oder halt für Embedded AVR kompilieren.

Dazu müssen die Pfade mit den Pfaden auf Deinem Computer übereinstimmen. Deswegen kann man nicht einfach die Projekteinstellungen eines anderen übernehmen, wenn bei dem Lazarus in einem anderen Verzeichnis liegt. Meine hab ich mal hier gepostet: https://www.lazarusforum.de/viewtopic.php?p=98230#p98230

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von kupferstecher »

Timm Thaler hat geschrieben:Dazu müssen die Pfade mit den Pfaden auf Deinem Computer übereinstimmen. Deswegen kann man nicht einfach die Projekteinstellungen eines anderen übernehmen, wenn bei dem Lazarus in einem anderen Verzeichnis liegt.

Bei einer sauberen und einheitlichen Installation des Crosscompilers sollte das schon gehen. Die Bibliotheksdateien können in der "fpc.cfg"-Datei hinterlegt werden. Die einzige installationsspezifische Einstellung bei mir ist der parameter"-XPavr-embedded-", der besagt, dass die Binutils mit Namen avr-embedded- anfangen müssen. Das ist aber eigentlich auch schon eine Konvention (allerdings offensichtlich nicht Compiler-Default...).

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Timm Thaler »

kupferstecher hat geschrieben:Bei einer sauberen und einheitlichen Installation des Crosscompilers sollte das schon gehen. Die Bibliotheksdateien können in der "fpc.cfg"-Datei hinterlegt werden. Die einzige installationsspezifische Einstellung bei mir ist der parameter"-XPavr-embedded-", der besagt, dass die Binutils mit Namen avr-embedded- anfangen müssen. Das ist aber eigentlich auch schon eine Konvention (allerdings offensichtlich nicht Compiler-Default...).


Naja, die saubere Installation des Crosscompilers war bis vor kurzem auch ein Problem. Und ich hab zum Beispiel die binutils in cross\bin\avr-embedded liegen und weiss nicht ob das die von mir händisch reinkopierten sind oder ob fpcupdeluxe die inziwschen selbst mitbringt. Ich werd aber den Teufel tun und an meiner funktionierdenden Installation rumfummeln um das rauszubekommen.

Und unter Linux ist das noch schlimmer, da liegen die Dateien dann quer über die verschiedensten Verzeichnisse verteilt.

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von kupferstecher »

Timm Thaler hat geschrieben:Ich werd aber den Teufel tun und an meiner funktionierdenden Installation rumfummeln um das rauszubekommen.

So gehts mir auch, in den fragilen Abhängigkeiten nur nichts kaputt machen~

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Mathias »

cross\bin\

In diesem Ordner habe ich nichts, was mit AVR zu tun hätte. Somit macht dies fpcupdelux nicht.

Und unter Linux ist das noch schlimmer, da liegen die Dateien dann quer über die verschiedensten Verzeichnisse verteilt.

Ich denke, bei der fpcupdelux-Version ist dies nicht der Fall, aber bei der offiziellen Version, welche mit *.deb erstellt wurde ist dies extrem, da muss man nichts suchen wollen. Und dieses für Cross einzurichten, geht nichts ohne Root-Rechte.

Aber mit fpcupdelux ist es nun möglich fast auf Anhieb ein AVR-Cross-Compiler zu erzeugen.
Einzig das mit der -WP Einstellung muss man wissen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Marc »

ich habe trunk installiert. Das war wohl nicht genug. Habe jetzt 'avr' und 'embedded' angewählt und auf install cross compiler geclickt.
Da kam die Frage ob ich die binary tools von free pascal laden will. Jetzt scheint es durchgelaufen zu sein.
Ich habe jetzt auch ein paar Dateien in cross\bin\avr-embedded
Wenn ich im Compiler bei config und target : embedded, avr und avr5 anwähle gibts schon mal keine Fehlermeldung mehr.
Kann es auch compilieren. Das der Compiler die Sache nicht ausführen kann ist ja klar.
Im Verzeichnis 'Mega328projekt' hab ich jetzt auch ein Unterverzeichnis 'lib\avr-embedded' mit einigen Dateien.
Unter anderem die 'Mega328pProject.s' Datei.
Wird diese Datei dann mit AVR Dude in den Atmega geschickt?
Good code comes from experience, experience comes from bad code.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Timm Thaler »

Marc hat geschrieben:Ich habe jetzt auch ein paar Dateien in cross\bin\avr-embedded


Kannst Du mal die Namen hier posten?

Marc hat geschrieben:Unter anderem die 'Mega328pProject.s' Datei.
Wird diese Datei dann mit AVR Dude in den Atmega geschickt?


Nein, die *.s ist eine Textdatei, da kannst Du sehen was für ein Assemblercode aus Deinem Pascalcode gemacht wird. Das ist sehr nützlich um zu sehen wo man optimieren kann.

Der erstellte Assemblercode wird dann dem ASM-Compiler aus den Binutils übergeben, um daraus den Maschinencode für den AVR zu machen. Dieser steht dann in einer Datei, die auf *.hex endet. Und diese wird mit Avrdude dem Programmer übergeben, der sie in den AVR schreibt.

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Marc »

Das hab ich im Verzeichnis. -> Bild
Das .bak file kommt vom Rumprobieren mit WinAVR, soll irgendwie sowas sein wie AVR Dude.

Kämpfe noch mit dem Programmer (Diamex) Win7 weigert sich standhaft den Treiber zu laden.
Hab gerade das Arduino Gedöns heruntergeladen. Vieleicht das ein Wunder geschieht.
Dateianhänge
Mega328pProject.png
Good code comes from experience, experience comes from bad code.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Timm Thaler »

Marc hat geschrieben:Kämpfe noch mit dem Programmer (Diamex) Win7 weigert sich standhaft den Treiber zu laden.


Mit welchem Programm hast Du bisher die AVRs beschrieben?

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Mathias »

Kämpfe noch mit dem Programmer (Diamex) Win7 weigert sich standhaft den Treiber zu laden.
Hab gerade das Arduino Gedöns heruntergeladen. Vieleicht das ein Wunder geschieht.

Hast du genauere Angaben zu dem Programmer ?
Einzig was ich mit Google entecken konnte, da dort st32 Kontroller verbaut sind.
Die Arduino-Software bringt nur Treiber zu den originalen Arduinos mit. Bei China-Kopien braucht man einen extra Treiber.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Marc »

Hallo

Der Diamex ist der hier.
https://www.diamex.de/dxshop/USB-ISP-Pr ... l-AVR-Rev2
Habe den mal gekauft weil er auch langsam programmieren können sollte.
Das ist scheinbar für die kleinen AVR nötig.
Hat mir aber noch nie gelaufen.
Ev. das er unter Linux läuft.

Normal brauche ich den Programmer der direkt mit Bascom läuft.
https://www.mcselec.com/index.php?page= ... p&Itemid=1
Das klappt bestens, auch weil ich direkt aus der IDE den AVR laden kann. Ist aber ev. nicht mit AVR Dude kompatibel (steht nur was von stk200).

Habe gerade mal nachgeschaut. Ich kann in Bascom ein Binärfile laden und programmieren.
Dem AVR wird es ja egal sein wie das File zustande gekommen ist.
Das Bascom ist übrigens (teilweise) kostenlos. Also ev. eine AVRDude Alternative.

Mit einem Arduino einen Programmer basteln finde ich technisch interessant, aber irgendwie wenig praktikabel.
Good code comes from experience, experience comes from bad code.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Timm Thaler »

Marc hat geschrieben:Also ev. eine AVRDude Alternative.


Softwareunterstützung:
...
AVRDUDE


Sollte ja wohl gehen.

https://www.mikrocontroller.net/topic/226307

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von kupferstecher »

Marc hat geschrieben:Normal brauche ich den Programmer der direkt mit Bascom läuft.
[...]
Ist aber ev. nicht mit AVR Dude kompatibel (steht nur was von stk200).


Probier mal ob die folgenden Kommandozeilen funktionieren, AVRDude muss natärlich installiert sein:

"avrdude -p atmega328p -c stk200 -e -U Mega328pProject.hex"
"avrdude -p atmega328p -c bascom -e -U Mega328pProject.hex"

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Neues Unterforum: Embedded, Embedded AVR

Beitrag von Marc »

In win7 ist avrdude installiert. Aber die Treiber für beide Programmer sind noch nicht am laufen.
Ich probiere das dann mal mit XP.
Oder ohne VM.
Oder ich lass AVRdude nur ein Bin file machen.
Dateianhänge
avrdude output.png
Good code comes from experience, experience comes from bad code.

Antworten