|
NKC Forum |
| Author | Topic: Projekt C-Crosscompiler | ||
|---|---|---|---|
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 24, 2026 10:05 AM (#202)
Quote
PM E-mail
Hmm, hatte gerade nochmal ein make im gcc-stage1 und dann im newlib gemacht, jetzt beendete es ohne Error.
Danach nochmal das Script komplett laufen lassen, jetzt kam es deutlich weiter und brach erst viel später bei der SW ab. Dabei hatte ich nur zwischendurch den Rechner neu gestartet, was ja unter Linux keinen Unterschied machen sollte. Jedenfalls suche ich jetzt weiter und braucher zumindest erstmal keine Hilfe. Hoffe ich. Install nkc_common.... Cloning into '/home/rene/gcc-build/nkc-tmp'... remote: Enumerating objects: 872, done. remote: Counting objects: 100% (872/872), done. remote: Compressing objects: 100% (621/621), done. remote: Total 872 (delta 282), reused 707 (delta 212), pack-reused 0 (from 0) Receiving objects: 100% (872/872), 179.25 MiB | 6.82 MiB/s, done. Resolving deltas: 100% (282/282), done. Prefix: /home/rene/working/m68k-gcc ExamplesDir: /home/rene/working/m68k-gcc/m68k-elf/Examples DstDeltaDir: /home/rene/working/m68k-gcc cp: cannot stat '/home/rene/gcc-build/nkc-tmp/SW/SysGCC-delta/m68k-elf/*': No such file or directory rene@ThinkCentre:~/work$ /home/rene/gcc-build/nkc-tmp/SW/SysGCC-delta/m68k-elf existiert eigentlich. |
||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 24, 2026 01:41 PM (#203)
Quote
PM E-mail
rene@ThinkCentre:~/work$ cp -rf /home/rene/gcc-build/nkc-tmp/SW/SysGCC-delta/m68k-elf/* /home
/rene/working/m68k-gcc vom Prompt ausgeführt klappt auch. Komisch. Weiter... OK, die "" im Script haben gestört. Ohne die wird kopiert: cp -rf "${DeltaDir}/m68k-elf/*" "${DstDeltaDir}/"; Aber dann kann der trotzdem nicht bauen: # Build NKC runtime cd "${DeltaDir}/m68k-elf"; export PATH="${Prefix}/bin:${PATH}"; make \ CC=m68k-elf-gcc \ AR=m68k-elf-ar \ AS=m68k-elf-as; denn im /home/rene/gcc-build/nkc-tmp/SW/SysGCC-delta/m68k-elf, wo er das make ausführen soll, liegt auch kein Makefile. Hätte er da vorher etwas kopieren/konfigurieren sollen, was nicht passiert ist? Oder stimmt der Pfad nicht? Hmm... |
||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 24, 2026 03:20 PM (#204)
Quote
PM E-mail
Nochmal "from scratch" ausgeführt.
Alle Verzeichnisse gelöscht und Script gestartet: - makeinfo Fehler in build_newlib() Im function_main() jeweils alle Aktionen auskommentiert und ab build_gcc_stage1() dann jeweils einzeln ausgeführt. Ohne vorheriges Löschen. - build_newlib() läuft ohne Fehler durch - build_gcc_final() klappt auch - install_nkc_components (Anführunfszeichen beim cp -rf entfernt) läuft wieder bis zum "#Build NKC runtime", siehe oben. Soll der wirklich im $DeltaDir/m68k-elf bauen? Oder im $DstDeltaDir wir im build_nkc_runtime()? Mal probieren... |
||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||
|
Creep Voll in Gange ![]() ![]() ![]() ID # 169 |
Posted on January 24, 2026 04:19 PM (#205)
Quote
PM E-mail
--> Behoben durch "unset MAKEINFO" in build_newlib() |
||
Posts: 746 | Member since: January 2017 | IP address: not saved | |||
|
andi Fühlt sich wie zu Hause ![]() ![]() ![]() ID # 213 |
Posted on February 05, 2026 04:00 PM (#206)
Quote
PM E-mail
Hallo,
zur Info: ich hab jetzt am Tang-Nano das 68020 Instruction-set eingeschaltet und dann das Benchmark-Programm (dhry.c) inkl. NKC-Lib für den 68020 recompiliert. Dadurch ist das Programm um ca. 25% schneller (wegen den effizienteren Instructions). Weiters sind dadurch auch voll relokative Programme >32kB möglich (68020 hat einen long-branch mit 32bit offset). LG, Andi |
||
Posts: 472 | Member since: May 2021 | IP address: not saved | |||
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on February 05, 2026 07:22 PM (#207)
Quote
PM E-mail
super, update bitte !
----------------------- NKC'ler seit 1984 (Pause zw. 1988-2017) CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k und eine FPGA-GDP. NKC - OpenSource since 1983 |
||
Posts: 308 | Member since: January 2011 | IP address: not saved | |||
|
andi Fühlt sich wie zu Hause ![]() ![]() ![]() ID # 213 |
Posted on February 05, 2026 08:43 PM (#208)
Quote
PM E-mail
Hallo Smed
Muss das noch etwas testen und dokumentieren. Die CPU implementiert leider nicht alle 68020 Instructions. Es fehlen einige wenige die der Compiler (angeblich) nicht verwendet. Muss das aber noch besser testen. Hab das LVGL Framework für den 68020 mal neu compiliert (inkl. Lib) und auf meinem (68020) Tang-nano getestet - lief ohne Probleme. Der Dhrystone-Test lieferte (compiliert für den 68020) ~11100 Dhrystones/s (nur für 68000 compiliert ~9000, eine normale 68000 hat ca. 2200 Dhrystones/s). Ich stell am Wochenende ein FPGA-file rein mit dem 68020. Aber einstweilen mit Vorsicht verwenden. LG, Andi |
||
Posts: 472 | Member since: May 2021 | IP address: not saved | |||
|
andi Fühlt sich wie zu Hause ![]() ![]() ![]() ID # 213 |
Posted on February 05, 2026 09:06 PM (#209)
Quote
PM E-mail
Hallo Smed,
ach egal ich hab mal eine Vorab-Testversion rein gestellt: https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68020_PS2_KEYB_PCB.fs Diese läuft bei mir seit zwei Tagen sehr stabil. Um Programme für den 68020 (ohne FPU) zu compilieren musst du bei den CLFAGS "-m68000" durch folgendes ersetzen: -m68020 -msoft-floatHab damit auch bei mir auch die NKC-Lib re-compiliert Danach erzeugt der GCC instructions für den 68020. Getestet mit dem Windows GCC 4.8.0. Hoffe dass auch ein neuerer Compiler keine CALLM, RETM Instructions verwendet (welche doch sehr speziell sind und hauptsächlich bei Betriebssystemen zum Kontextswitch eingesetzt werden). Bin gespannt auf deinen Test. LG, Andi |
||
Posts: 472 | Member since: May 2021 | IP address: not saved | |||
|
pitdahl Kennt sich schon aus ![]() ![]() ID # 250 |
Posted on February 21, 2026 10:05 PM (#210)
Quote
PM E-mail
Hi Andi, bin begeistert. Nachdem ich den ganzen Tag mit kubuntu versucht habe eine Toolchain hinzubekommen, bin ich auf dein Zipfile gestossen und dachte, versuchs mal. Hab mir nun eine Mint Virtualbox VM 21.3 installiert, Dein Zipfile in das angegebene Verzeichnis gepackt, den PATH angepasst und bin ins Example Verzeichnis gegangen und habe einfach mal kompiliert. Und WOW, es hat auf Anhieb und ohne Fehlermeldungen kompiliert und ich habe mal den Jados_Test (die .68k) auf den NKC unter Jados geworfen und es läuft, xmas und tetris konnte ich auch kompilieren auch, kann ich nur nicht testen da die nicht mit der einfachen GDP64K laufen. Ich bin begeistert. Jetzt kommen die nächsten Fragen, wie kann ich z.B. andere Programme aus anderen GITs z.B nehmen und kompilieren, wie mache ich es wenn im Programm includes drin sind und wie erstelle ich Makefiles, die ganzen Schalter und Bezeichnungen sagen mir einfach nichts. Vielleicht kann ich jemand erleuchten, da fehlt mir noch zu viel. Gruß Pit und danke für das ZIP File ----------------------- -was es nicht gibt wird gebastelt- |
||
Posts: 125 | Member since: October 2025 | IP address: not saved | |||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on February 22, 2026 08:07 AM (#211)
Quote
PM E-mail HP
Hallo Pit,
vielleicht kann ich hier etwas unterstützen. Beispiel CEDLIN. Ich wollte den Zeileneditor von DOS nachbauen. Dazu habe ich in Examples ein Unterverzeichnis cedlin angelegt und darunter die Verzeichnisse obj und _out Das erste Makefile habe ich vom Jados_Test geklont und in das cedlin Verzeichnis kopiert. Im Makefile benötigte es nur wenige Anpassungen: TARGET := cedlin (so soll das Programm heißen) CSRCS= cedlin.c \ util.c\ file.c\ rows.c\ editor.c\ list.c\ help.c und in CSRCS kommen die ganzen C-Dateien rein, die für das Projekt benötigt werden. Hier nur auf die korrekte Reihenfolge achten, die durch die abhängigen Funktionen gefordert ist (so meine Erkenntnis). Man muss sich hier um die vielen Schalter dann nicht weiter kümmern. Für den Start mit C habe ich mir allgemeine Informationen von hier https://openbook.rheinwerk-verlag.de/c_von_a_bis_z/ geholt. Vielleicht hilft das. VG Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
||
Posts: 211 | Member since: June 2025 | IP address: not saved | |||
|
pitdahl Kennt sich schon aus ![]() ![]() ID # 250 |
Posted on February 22, 2026 10:42 AM (#212)
Quote
PM E-mail
Hi Jürgen, so in etwa hatte ich das gehofft, dass man das Makefile und die Verzeichnisse clonen kann mit entsprechenden Änderungen. Mit dem Programmnamen und den .c Files hatte ich mir schon soweit rausgesucht, war nur nicht sicher ob das so geht. War mir nur mit den ganzen Schaltern nicht sicher. Dann werde ich das mal probieren. Bei einigen Programmen gibt es noch so Dateien wie crt0.S und ram.ld etc. hast Du eine Ahnung wofür die sind? die ram.ld ist ja wohl eine Linker Datei kann man solche Dateien auch unter CSRCS mit aufnehmen, ich denke das geht so wohl nicht. Als Test würde ich gerne mal das Programm lcd.c aus Renes Git nehmen, da ist unter helloworld so eine ram.ld und eine build.bat, deren Funktion ja nun das makefile übernimmt. Keine Ahnung ob Du das kennst. Ansonsten werde ich mal Deinen Buchtipp ansehen. Bin aber schon mächtig froh das die Toolchain klappt. Übrigens hattest Du in einem vorherigen Post ja mal ChatGPT erwähnt, damit habe ich auch schon rumexperimentiert, das Ding kennt den NKC auch, habe aber bisher nur ein Programm für meinen Hydroponik Tower erstellen lassen, das klappt, nach einigem Hin und Her ganz gut, auf jeden Fall klasse um sich Unterstützung und Tipps zu holen. Gruß Pit ----------------------- -was es nicht gibt wird gebastelt- |
||
Posts: 125 | Member since: October 2025 | IP address: not saved | |||
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on February 22, 2026 06:05 PM (#213)
Quote
PM E-mail HP
Hallo Pit,
diese crt0.* und rm_ram1.ld oder ähnlich werden im Makefile abgehandelt. Die müssen in Deiner CSRCS (Compile Sources) nicht berücksichtigt werden. Die crt0.* ist die C-Runtime-Startup-Datei, die erst das Starten des Programms am NKC ermöglicht. Die *.ld datei ist ein Linkerscript, der dadfür verantwortlich ist, wie die einzelnen Programmteile zusammengefügt werden sollen. Soweit mein Erkenntnis. Bisher habe ich nur TARGET und CSRCS angepasst. Das mit den anderen Bereichen ist Kunst, die ich nicht anfasse. Einzig bei den CFLAGS würde ich -m68000 auf -m68020 ändern, wenn ich meinen TangNano dorthin umgerüstet habe. Ja, der ChatGPT. Ich arbeite jetzt schon länger damit und die anfängliche Begeisterung ist einer gewissen Ernüchterung gewichen. Es kommt sehr auf die Exaktheit beim Prompten an, was da zurückkommt. Ich liefere zu Beginn immer alles aus dem NKC an Prototypen mit und stelle mein Konzept vor. Dann bekomme ich meist ein Grundgerüst geliefert. Später verzettelt sich die KI dann oft und dreht Schleifen und baut Workarounds, die dann andere Codeteile oft negativ beeinflussen. Einige Projekte habe ich dann eingestellt, weil das so keinen Sinn gemacht. Gelernt habe ich aber viel, z.B. in der Konzeptionierung. Ich denke das Thema jetzt viel mehr durch und lasse mir dann nur noch bei gezielten Funktionen helfen, oder ich nehme die KI zum recherchieren. Das spart Google. Die freundliche Art des Umgangs ist nett, aber irgendwann habe ich gelernt, das der letzte finale Vorschlag von Code, der absolut zur Retrozeit passt und exakt der Vorgehensweise von Programm XYZ aus der alten zeit entspricht, wohl nicht ernst gemeint sind und eher als Stimmungsaufheller gedacht sind. Mittlerweile muss ich da immer Schmunzeln... Sorry, wenn das jetzt ein bisschen zu Offtopic war, hat ja mit dem Thema nichts zu tun. VG Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
||
Posts: 211 | Member since: June 2025 | IP address: not saved | |||
|
fin55 Kennt sich schon aus ![]() ![]() ID # 223 |
Posted on February 23, 2026 06:09 PM (#214)
Quote
PM E-mail
Hallo Pit,
wenn du dich mit make und dem Makefile beschäftigen möchtest, empfehle ich dir ein kleines Tutorial: https://makefiletutorial.com Es lohnt sich die kleinen Beispiele einmal durchzuarbeiten, damit man ein Gefühl für die Arbeitsweise von make bekommt. Ich staune nach einem Jahr Makefile immer noch, was damit alles möglich ist ... LG Werner |
||
Posts: 60 | Member since: April 2022 | IP address: not saved | |||
|
pitdahl Kennt sich schon aus ![]() ![]() ID # 250 |
Posted on February 24, 2026 12:18 AM (#215)
Quote
PM E-mail
Hallo Werner, danke für den Link, werd mal schauen ob mich das weiterbringt, danke Gruß Pit ----------------------- -was es nicht gibt wird gebastelt- |
||
Posts: 125 | Member since: October 2025 | IP address: not saved |
| https://nkcforum.de | Board rules | Privacy policy
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Site created in 0.047876 seconds
Processed 20 files
gzip compression enabled
2463.85 KiB memory usage




Posted on January 24, 2026




