sudo make all crossinstall OS_TARGET=embedded CPU_TARGET=avr CROSSBINDIR=/usr/local/bin BINUTILSPREFIX=avr- INSTALL_PREFIX=/usr/local make: -iVSPTPSOTO: Befehl nicht gefunden make compiler_cycle RELEASE=1 make[1]: -iVSPTPSOTO: Befehl nicht gefunden make[1]: Verzeichnis »/media/Daten/fpc/trunk« wird betreten make -C compiler cycle make[2]: -iVSPTPSOTO: Befehl nicht gefunden make[2]: Verzeichnis »/media/Daten/fpc/trunk/compiler« wird betreten make OS_TARGET= CPU_TARGET= CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl CYCLELEVEL=1 make[3]: Verzeichnis »/media/Daten/fpc/trunk/compiler« wird betreten make -C clean
Ach, man kann jetzt mit FPC Arduino Programmieren? Z.B. den Tiny85-20 oder den atMega328?
Jein und Jein Arduinos enthalten ja erstmal einen Bootloader, es gehört die IDE dazu etc., das wird von FPC erstmal nicht direkt unterstützt, ist aber kein prinzipielles Hindernis. Gleiches gilt für Tiny85-20 und atMega328: da fehlen momentan einfach die Units, die die Peripherie beschreiben, die existieren momentan nur für Atmega8 und Atmega128. Aber auch hier gilt: kein prinzipielles Hindernis, nur 1-2h Fleißarbeit, vgl. http://svn.freepascal.org/cgi-bin/viewv ... sion=30768
Christian hat geschrieben:Ich stell mich irgendwie gerad zu prasselig an:
sudo make all crossinstall OS_TARGET=embedded CPU_TARGET=avr CROSSBINDIR=/usr/local/bin BINUTILSPREFIX=avr- INSTALL_PREFIX=/usr/local make: -iVSPTPSOTO: Befehl nicht gefunden make compiler_cycle RELEASE=1 make[1]: -iVSPTPSOTO: Befehl nicht gefunden
So nächste 2 Probleme: Der Compiler findet den externen Assembler nicht der ist als avr-as standardmässig verlinkt compiliert wurde auch mit prefix avr- was muss ich tun damit er ihn findet ?
Der atMega328 ist ja Pin kompatibel zum atMega8. D.H. die Änderungen dürften also relativ wenig sein oder? Ich such noch im Datenblatt die Beschreibung der Register....
Nachtrag: habe sie gefunden... Also sieht nicht kompliziert aus.... Erst einmal.
Pinkompatibel heisst doch nicht das dr selbe CPU Kern enthalten ist. Die Reihe Atmega88 /168/ 328 hat einiges an neuer Periferie, die IO Beschreibung ist dementsprechend komplexer. Aber wäre natürlich gut wenn du sie fertig machst, bezweifel nur das das beim Vorwissen klappt. Mal sehn wie ich nächste Woche zu komm vllt setz ich mich mal dran für ein paar mehr avrs die Registerbeschreibungen zu machen. Und n bissl zu testen.
Aber wäre natürlich gut wenn du sie fertig machst, bezweifel nur das das beim Vorwissen klappt.
Ich habe nicht gesagt, dass ich es machen werde, ich habe es mir nur "grob" Angeschaut um einen Eindruck zu gewinnen. Mehr nicht. Ich finde das Thema halt Interessant.
Christian hat geschrieben:So nächste 2 Probleme: Der Compiler findet den externen Assembler nicht der ist als avr-as standardmässig verlinkt compiliert wurde auch mit prefix avr- was muss ich tun damit er ihn findet ?
avr.s: Assembler messages: avr.s:9: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:10: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:21: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:22: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:25: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:26: Error: Ungültiger Befehlscode jmp für mcu avr2 avr.s:27: Error: Ungültiger Befehlscode jmp für mcu avr2
Edit:atmega8 ist avr3 und nicht avr2 behoben.
Wie hast Du compiliert? Mit -Wpatmega8 ? FPC sucht standardmäßig nach avr-embedded-as etc. Ansonsten das Prefix mit -XP angeben
Write funktioniert allerdings nur mit -Wpavrsim
_Bernd hat geschrieben:Spannend Die AVRs haben ja getrennte Adressräume für RAM und FLASH (Harvard-Architektur). Ist es denn möglich, diese über Pointer zu adressieren?
Daten ganz normal, Code als Procedure-Variablen. Was nicht geht: eins in das andere zu casten. Aber das geht ja auch bei modernen OS wegen DEP nicht mehr.
Ja da hat mich eher interessiert was er daraus macht
Im Endeffekt Aufrufe von Procedure-Variablen mit dem Wert nil. Am einfachsten könnte man die consoleio-Unit einbinden und dann dort die entsprechenden Routinen umleiten, um die Zeichen dann auf ein LCD auszugeben oder an einen beliebigen Port, wie es z.B. die avrsim-Unit macht.