AVR mit Lazarus OHNE Embedded
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: AVR mit Lazarus OHNE Embedded
Da der DIAMEX-AVR von avrdude unterstütz wird, müsste es mit Lazarus gehen.
https://www.diamex.de/dxshop/DIAMEX-USB ... k-fuer-AVR
https://www.diamex.de/dxshop/DIAMEX-USB ... k-fuer-AVR
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
will ich wohl meinen, das ich damit unter Lazarus keine Probleme bekommen werde.Mathias hat geschrieben: Di 22. Dez 2020, 20:13 Da der DIAMEX-AVR von avrdude unterstütz wird, müsste es mit Lazarus gehen.
https://www.diamex.de/dxshop/DIAMEX-USB ... k-fuer-AVR
Vorerst werde ich die noch via Console Brennen und im späteren Verlauf mal schauen, das ich diesen Direkt einbaue.

bin auch gerade dabei, meine erste IO zu schreiben inkl, aller Constanten, Variablen, welche ich brauche, und komme nach und nach auf einige Fehlermelduungen, welche wohl NICHT erfasst wurden.

Nachdem ich das Thema mit den Units und Includes soweit vom Zettel bekomme, lande ich gerade hier bei dieser Meldung.
Code: Alles auswählen
Projekt kompilieren, Modus: avr-embedded, OS: embedded, CPU: avr, Ziel: SerCom: Exit code 1, Fehler: 1, Hinweise: 4
Hint: Start of reading config file /home/pi/fpcupdeluxe/fpc/bin/i386-linux/fpc.cfg
Hint: End of reading config file /home/pi/fpcupdeluxe/fpc/bin/i386-linux/fpc.cfg
Verbose: Free Pascal Compiler version 3.2.0-r45643 [2020/12/22] for avr
Verbose: Copyright (c) 1993-2020 by Florian Klaempfl and others
Verbose: Target OS: Embedded
Verbose: Compiling SerCom.lpr
Verbose: Compiling /home/pi/fpcupdeluxe/fpcsrc/rtl/inc/lnfodwrf.pp
Verbose: Compiling /home/pi/fpcupdeluxe/fpcsrc/rtl/inc/exeinfo.pp
Verbose: Compiling /home/pi/fpcupdeluxe/fpcsrc/rtl/inc/strings.pp
strings.pp(129,37) Hint: Function result variable does not seem to be initialized
Verbose: Assembling strings
exeinfo.pp(62,27) Hint: Parameter "addr" not used
exeinfo.pp(178,7) Fatal: Unknown compilerproc "fpc_ansistr_assign". Check if you use the correct run time library.
Verbose: Compilation aborted
Verbose: /home/pi/fpcupdeluxe/fpc/bin/i386-linux/ppcrossavr returned an error exitcode
Code: Alles auswählen
{$else FPC_HAS_FEATURE_COMMANDARGS}
filename:='';
ich hab unter Garantie eine vergessen oder ein paar falsche drinnen.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: AVR mit Lazarus OHNE Embedded
Schalte das die Option Zeilennummern in Laufzeitfehler-Backtraces anzeigen (-gl) (unter Compilereinstellungen -> Debuggen aus). Die entsprechenden Units, die dadurch eingebunden werden (eben nämlich lnfodwrf, exeinfo und strings) sind einfach zu mächtig für den AVR (genauso wie AnsiString, deswegen ist dieses Feature per Default deaktiviert).
FPC Compiler Entwickler
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
ist der durch das ausschalten von Generate info for the Debugger (slower / increases exe-size) nicht auch schon Deaktiviert?PascalDragon hat geschrieben: Mi 23. Dez 2020, 17:44 Schalte das die Option Zeilennummern in Laufzeitfehler-Backtraces anzeigen (-gl) (unter Compilereinstellungen -> Debuggen aus). Die entsprechenden Units, die dadurch eingebunden werden (eben nämlich lnfodwrf, exeinfo und strings) sind einfach zu mächtig für den AVR (genauso wie AnsiString, deswegen ist dieses Feature per Default deaktiviert).
Wenn nein, dann ist der Hinweis gold wert.
Habe meine Benutzerdefinierten Einstellungen mal mit diesen Parametern gefüttert und läuft soweit auch ohne Weitere Fehler.
- -al
- -O-
- -OpAVR5
- -WpATMEGA16
Code: Alles auswählen
/usr/bin/avrdude -c stk500v2 -p m16 -P/dev/ttyACM0 -b57600 -U flash:w:Projekt1.hex
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- 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: AVR mit Lazarus OHNE Embedded
Du kannst so anfangen, aber Optimierungen sollten später auf -O3, sonst erzeugt der Compiler eine Menge unnötigen Code. Zum Beispiel 16-Bit For-Schleifen, obwohl nur 8-Bit definiert.
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
das sowiesoTimm Thaler hat geschrieben: Mi 23. Dez 2020, 21:22 Du kannst so anfangen, aber Optimierungen sollten später auf -O3, sonst erzeugt der Compiler eine Menge unnötigen Code. Zum Beispiel 16-Bit For-Schleifen, obwohl nur 8-Bit definiert.

Aber wie ich leider mitbekomme, schein es dennoch ein Problem der UART unter FPC zu bekommen, den ich auf mikrocontroller.net liegen habe.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
Dort liegt der UART falsch. SCNR
Was ist genau dein Problem ? Scheint - ist keine Aussage.
Was ist genau dein Problem ? Scheint - ist keine Aussage.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
OutPut unter PicoCom mit dem C-Code = Hallo Weltaf0815 hat geschrieben: Do 24. Dez 2020, 11:46 Dort liegt der UART falsch. SCNR
Was ist genau dein Problem ? Scheint - ist keine Aussage.
OutPut unter PicoCom mit dem Lazarus erstelltenn Code = ''
Würde ich aber gerne anderen Forum lassen, da es mit dem Eigentliche nichte mehr zu tun hat.
Edit
Code: Alles auswählen
procedure UARTSendChar(value: char);
begin
while UCSRA and (1 shl UDRE) = 0 do begin
end;
UDR := byte(c); <--- c <> value
end;
Man sollte auch mal seine Variablen so verwenden, wie man diese in der Deklaration hat.
Copy|Past - Fehler
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- 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: AVR mit Lazarus OHNE Embedded
Mach mal einen eigenen Thread dazu auf, und stell den Code rein. mikrocontroller.net ist nicht sehr hilfreich bei Pascal, das sind größtenteils eingefleischte C-Jünger.Maik81SE hat geschrieben: Do 24. Dez 2020, 11:35 Aber wie ich leider mitbekomme, schein es dennoch ein Problem der UART unter FPC zu bekommen, den ich auf mikrocontroller.net liegen habe.
Meine Uarts laufen.
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
Wie gesagt...Timm Thaler hat geschrieben: Do 24. Dez 2020, 13:50Mach mal einen eigenen Thread dazu auf, und stell den Code rein. mikrocontroller.net ist nicht sehr hilfreich bei Pascal, das sind größtenteils eingefleischte C-Jünger.Maik81SE hat geschrieben: Do 24. Dez 2020, 11:35 Aber wie ich leider mitbekomme, schein es dennoch ein Problem der UART unter FPC zu bekommen, den ich auf mikrocontroller.net liegen habe.
Meine Uarts laufen.
Meine läuft jetzt auch

Da kann ich mich nach den Feiertagen um die TWI mit meinen beiden 8bit IO-Expandern kümmern und dann geht der Spaß richtig los.
Aber ja...
Bei Mikrocontroller.net habe ich auch eben wieder mitbekommen, das viele lieber aus die Hardware achten

Aber meine Verwendeten Units werde ich im neuen Jahr auch noch einmal anfassen und zur Verfühgung stellen.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: AVR mit Lazarus OHNE Embedded
Wenn aus irgendeinem Grund die IDE -gl dennoch an den Compiler weiterreichen sollte, dann macht der Compiler das ganz brav.Maik81SE hat geschrieben: Mi 23. Dez 2020, 19:57ist der durch das ausschalten von Generate info for the Debugger (slower / increases exe-size) nicht auch schon Deaktiviert?PascalDragon hat geschrieben: Mi 23. Dez 2020, 17:44 Schalte das die Option Zeilennummern in Laufzeitfehler-Backtraces anzeigen (-gl) (unter Compilereinstellungen -> Debuggen aus). Die entsprechenden Units, die dadurch eingebunden werden (eben nämlich lnfodwrf, exeinfo und strings) sind einfach zu mächtig für den AVR (genauso wie AnsiString, deswegen ist dieses Feature per Default deaktiviert).
Wenn nein, dann ist der Hinweis gold wert.
Die unteren drei solltest du auch über die Compilereinstellungen einstellen können.Maik81SE hat geschrieben: Mi 23. Dez 2020, 19:57 Habe meine Benutzerdefinierten Einstellungen mal mit diesen Parametern gefüttert und läuft soweit auch ohne Weitere Fehler.
- -al
- -O-
- -OpAVR5
- -WpATMEGA16
Wie hast du es denn eingebunden? In Compiler Kommandos -> Nachher ausführen? Dort könntest du einfach $(OutputFile) statt Projekt1.hex nutzen (oder so ähnlich).Maik81SE hat geschrieben: Mi 23. Dez 2020, 19:57 Auch das direkte Brennen aus Lazarus hab ich für meine Zwecke eingebunden.
einzig, was mich da zugegen stört, das man die Hex-File bei jedem Projekt Manuell ändern muß, oder ist da jemandem ein Allgemeiner Syntax als Parameter ("Projektname".hex) bekannt?Code: Alles auswählen
/usr/bin/avrdude -c stk500v2 -p m16 -P/dev/ttyACM0 -b57600 -U flash:w:Projekt1.hex
FPC Compiler Entwickler
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
Das habe ich wie folgt eingebunden... Die Option $(OutputFile) hatte leider nicht den Effekt, aber da ich an diesem Projekt jetzt auch eine Weile schreiben werde, Stört mich der Aspekt nur sekundär.Wie hast du es denn eingebunden? In Compiler Kommandos -> Nachher ausführen? Dort könntest du einfach $(OutputFile) statt Projekt1.hex nutzen (oder so ähnlich).Maik81SE hat geschrieben: Mi 23. Dez 2020, 19:57 Auch das direkte Brennen aus Lazarus hab ich für meine Zwecke eingebunden.
einzig, was mich da zugegen stört, das man die Hex-File bei jedem Projekt Manuell ändern muß, oder ist da jemandem ein Allgemeiner Syntax als Parameter ("Projektname".hex) bekannt?Code: Alles auswählen
/usr/bin/avrdude -c stk500v2 -p m16 -P/dev/ttyACM0 -b57600 -U flash:w:Projekt1.hex
Ist ja nicht so, das ich aller 5 Minuten ein anderes Projekt für meine µC schreibe.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: AVR mit Lazarus OHNE Embedded
Hab's mir jetzt gerade nochmal selbst angeschaut. Lazarus nimmt per Default .elf als Extension an, also musst du das folgende nehmen:Maik81SE hat geschrieben: Do 24. Dez 2020, 22:26 Die Option $(OutputFile) hatte leider nicht den Effekt, aber da ich an diesem Projekt jetzt auch eine Weile schreiben werde, Stört mich der Aspekt nur sekundär.
Ist ja nicht so, das ich aller 5 Minuten ein anderes Projekt für meine µC schreibe.
Code: Alles auswählen
$Path($(OutputFile))$NameOnly($(OutputFile)).hex
FPC Compiler Entwickler
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: AVR mit Lazarus OHNE Embedded
Jopp, genau das ist es, sommit schaut die entsprechende Zeile nun wie folgt aus.PascalDragon hat geschrieben: Fr 25. Dez 2020, 15:01 Hab's mir jetzt gerade nochmal selbst angeschaut. Lazarus nimmt per Default .elf als Extension an, also musst du das folgende nehmen:
2.0.10 scheint allerdings ein Problem mit $(OutputFile) zu haben, weswegen du dort $(TargetFile) nehmen solltest (der Unterschied ist, dass TargetFile das Startkommando bezeichnet, falls eins gesetzt ist, während OutputFile auch immer die Ausgabedatei ist).Code: Alles auswählen
$Path($(OutputFile))$NameOnly($(OutputFile)).hex
Code: Alles auswählen
/usr/bin/avrdude -c stk500v2 -p m16 -P/dev/ttyACM0 -b57600 -U flash:w:$Path($(OutputFile))$NameOnly($(TargetFile)).hex
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: AVR mit Lazarus OHNE Embedded
Du solltest auch TargetFile für den Aufruf in Path nutzen, damit es wirklich korrekt ist. Es macht bei dir keinen Unterschied, weil deine hex Datei im gleichen Verzeichnis wie dein Projekt liegt.
FPC Compiler Entwickler