|
NKC Forum |
| Author | Topic: Projekt C-Crosscompiler |
|---|---|
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on December 31, 2022 12:48 PM (#41)
Quote
PM E-mail
Hi,
Ja hab eh vor das ganze in kürze auf github zu stellen. Muss das vorher noch ein wenig bereinigen und testen. Gutes neues Jahr wünsche ich allen. LG Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on January 02, 2023 01:33 PM (#42)
Quote
PM E-mail
Hallo,
ich hab meine GCC-Version (gezippt) zum download in eine Dropbox gestellt: https://www.dropbox.com/s/kyiu6gsimt5o8tr/SysGCC.zip?dl=0 -> Nun inklusive C++ Support. Wenn man sich mit stl, iostream, template-klassen etc. austobt bekommt man aber sehr schnell ein .68k file mit einigen hundert kB (aber wozu hab ich denn 1MB RAM). Funktioniert aber (zumindest beim mir) toll. Ist mal was neues am NKC in C++ zu programmieren. Gruss, Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on February 26, 2025 05:44 PM (#43)
Quote
PM E-mail
Hi,
ich habe meinen NKC umgebaut und habe nun RAM ab $0, habe ein 512kB IC ($00000 - $80000). Da ich keine BOOT-Karte habe verwende ich meinen Arduino um das GP ab $60000 ins RAM zu schreiben und außerdem dann auf den Adressen $0 und $4 stack pointer und RESET Vektor abzulegen: __asm__("dc.l 0x00060A02"); //stack pointer __asm__("dc.l 0x00064214"); //reset vector Der Arduino pullt dann noch einen NKC Reset und das GP startet, dann boote ich JADOS ueber die SD Karte in der FPGA-GDP. Das funktioniert soweit ganz ok. Das Übertragen des GP per Arduino dauert gut 30 Sek., etwas nervig aber im Idealfall ist das ja nur ab und zu nötig. JADOS meldet 343 kB freier Speicher. Alle meine relokativ kompilierten Spiele (mit gcc 8.2 kompiliert) funktionieren, die brauchen ja auch weder GP noch JADOS, war also zu erwarten. Folgendes klappt zB ebenfalls, (auf JADOS image disk C) linien, sprite1 und xt und auch alle älteren Programme. Nun habe ich Andi's gcc compiler environment (gcc 4.8) frisch gedownloadet und entpackt. Als erstes möchte ich SW/Jados_test https://github.com/avg67/nkc/tree/be3be24f8876cf26ed5c16d2a61788eb8ed2c178/SW zu Laufen kriegen, es kompiliert auf dem PC ok. Das .m68k file schreibe ich per Arduino zur Adresse $400 im NKC. Dann speichere ich in JADOS mit DSAVE alles ab $400 in das file jatest.68k - diese file starte ich dann vom JADOS prompt = leider crashed es mit 'Falscher Befehl'. Nach dem crash schaue ich mit GP ab Adresse $400, das Programm ist im Speicher und sieht soweit ok aus. Hat jemand eine Idee warum es crashed? Ist mein bootverfahren ok, fehlen evt. noch irgendwelche Vektoren im Bereich $0 - $400 ? Gruss smed test.68k ----------------------- 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 Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on February 26, 2025 09:41 PM (#44)
Quote
PM E-mail
Hallo,
An welcher Addresse stürzt denn das Programm ab. Siehst du das? Im _out Verzeichnis gibt es auch ein Listing (test.lst). Da kannst du gegenchecken was an dieser Addresse ist bzw. kannst du Stichproben machen ob der Speicherinhalt stimmt. Siehst du Ausgaben oder stürzt er sofort ab? Wenn er sofort (im Startup) abstürzt hab ich das Problem oft schon mit dem Singlestep im GP raus gefunden (Programm auf $400 laden aber nicht starten und dann mittels Einzelschritt zu debuggen) Eigentlich sollte es funktionieren. Mein Framework läuft nun doch schon bei einigen Leuten problemlos. Ah und versuch ev. mal den Dhrystone test (dhry) ob der läuft. Der ist einfacher. Ohne FPGA-Timer zeigt er zwar nichts sinnvolles an aber er sollte trotzdem durchlaufen LG, Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on February 26, 2025 10:01 PM (#45)
Quote
PM E-mail
crash ist bei $79F0, bin schon im Einzelschritt werde aber noch nicht richtig schlau draus
Sehe im Speicher ab $7998 da wo eigentlich main() losgehen sollte ein $00 $07 $00 $F5 pattern bis $7BFF, hmmm..., so sieht un-initialisiertes (leeres) RAM aus... Dhrystone lauft durch (nicht selbst kompiliert), zeigt aber trotz FPGA-Timer nichts sinnvolles an, aber immerhin, evt ein Hardware-Problem bei mir mit Interrupt? ----------------------- 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 Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on February 26, 2025 10:08 PM (#46)
Quote
PM E-mail
Hallo,
der Dhrystone Test braucht den Timer-Interrupt. Ist die Interrupt-Leitung angeschlossen? Kann das Tang-Nano bei dir Interrupts auslösen? Ah der Absturz ist offenbar ganz am Ende. Siehst du vorher Ausgaben? Wenn nicht kannst du es mal bis zum main laufen lassen (0x782c bei mir) int main(int argc, char **argp, char **envp)Wenn es vorher abstürzt dann ist ein Problem im Startup. Aber wie gesagt es läuft schon bei einigen. Kann mir nicht vorstellen dass da noch ein so grober Bug im der Library oder Startup ist. Hast du eine Ser-Karte? wenn ja könntest du mal meinen rs232d downloader versuchen. LG, Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on February 26, 2025 11:16 PM (#47)
Quote
PM E-mail
habs gefunden...mein file transfer laeuft mit .S19 files, im .S19 im _out Verzeichnis fehlt die .text.startup section, also main() fehlt, daher laueft alles ok bis main(), dann gehts ins Nirwana...
...ge-fixed im Makefile: # Flags for objcopy toolNun lauft der Jados Test bei mir komplett durch - sehr schön ! ----------------------- 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 Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on February 26, 2025 11:31 PM (#48)
Quote
PM E-mail
Hi,
Oh die S19 files sind ein Artefakt die ich noch nie verwendet habe. Die ganzen OBJCOPY_FLAGS kannst alle weg schmeissen. Es sollen ja eh alle Sections im s19 file landen. Ich hab das makefile entsprechend upgedated. LG Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on March 03, 2025 01:20 PM (#49)
Quote
PM E-mail
Dhrystone laeuft nun auch auf meinem 68008 System:
764 Dhrystones/s, gcc 4.8 -g -Os 1069 Dhrystones/s, gcc 4.8 -O5 n/a Dhrystones/s, gcc 8.2 -O5 Mit gcc 8.2 funktioniert die Textausgabe nur im Schneckentempo, ca. 10sek pro character (!) - da brauchts wohl mal eine Nacht debuggen um zu verstehen warum...also gcc 4.8... gruss smed ----------------------- 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 Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on March 03, 2025 02:38 PM (#50)
Quote
PM E-mail
Hallo,
klingt ja toll. Mein 68010 (10MHz) hat 1754 Dhrystones/s (-Os) und 2597 Dhrystones/s (-O5), das Tang Nano (68000, 10MHz mit ~2 WS beim Speicher) hat ~1400 Dhrystones/s (ebenfalls -Os) Den GCC8.2 wo hast du denn den her? Würd ich gerne mal probieren. Hab unter Linux den GCC 7.5 am laufen. Die 68k files damit sind ca. gleich schnell aber deutlich größer weil die Libraries um so größer und aufgeblähter werden je neuer ein GCC ist (hauptsächlich Multiprocessing updates etc. die wir für den NKC nciht brauchen). Für mich ist der GCC 4.8.0 diebezüglich ein guter Kompromiss. Halt mich am laufenden was sich diesbezüglich bei dir so tut. LG, Andreas |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
smed Stammgast ![]() ![]() ID # 114 ![]() |
Posted on March 03, 2025 04:43 PM (#51)
Quote
PM E-mail
den gcc 8.2 (pre-build binaries for WIN) hab ich hier her: http://www.aaldert.com/outrun/
dazu habe ich dein gcc-delta gemerged was bis auf ein paar Kleinigkeiten ohne Probleme ging irgendwo habe ich aus _READ_WRITE_RETURN_TYPE "int" gemacht ----------------------- 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 Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on March 27, 2025 10:11 AM (#52)
Quote
PM E-mail
Hallo,
zur Info: Seit gestern läuft FreeRTOS auf meinem NKC https://www.freertos.org/ Das ist ein sehr leistungsfähiger (preemptiver) Multitasking Kernel. Damit kann man jetzt mit Multithreading, Sempaphoren, Mutexe etc. experimentieren und Apps damit schreiben. Nur gut dass die Libraries meines GCC-Ports "threadsafe" sind. Die Jados und GP-Routinen sind es jedenfalls nicht. Das hab ich schon getestet. Die muss man selber mittels Mutex absichern. Es gibt davon auch eine Variante mit integriertem TCP/IP (v4, v6) Stack. Den Treiber für unsere Ethernet-Karte geh ich als nächstes an. LG, Andi |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on May 08, 2025 07:21 PM (#53)
Quote
PM E-mail
Hallo,
hab jetzt die Speed-optimierungen beim Tang-nano Speicherinterface gemergt. Die CPU (und auch GDP) ist dadurch spürbar schneller geworden. z.B. CPU-Dhrystone (-Os) 1400 -> 1626 GDP-Clearscreen 8ms -> 3ms. Alle GDP-Zeichenoperationen sind im selben Ausmaß schneller geworden. Ein aktualisiertes FPGA-File kommt in Kürze. LG, Andreas |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on November 18, 2025 01:42 PM (#54)
Quote
PM E-mail HP
Hallo Crosscompiler-Fans,
nachdem ich jetzt meinen 68k-NKC soweit hergerichtet habe, wollte ich mich um den 68k-Cross-Compiler kümmern. Eigentlich war Windows nicht meine Plattform, aber als Neuling folgt man vorhandenen Spuren. Ich brauche eure Hilfe - es läuft nicht... Ich wollte Jados_test übersetzen und auf den beiden NKC's (dediziert 68008 und TangNano 68000) ausführen. Ich habe mir das besorgt von Andi: https://github.com/avg67/nkc/wiki/GCC-Crosscompile-Framework-f%C3%BCr-den-NKC und installiert. Dazu folgte ich der Anweisung für die WSL, die ich auch in Betrieb nehmen konnte. In der Anleitung sollte ich auch die Lib neu übersetzen und installieren, was glaube ich auch funktioniert hat, ich sah zumindest keine *Errors*. Dann holte ich mir noch den Jados_test und kopierte ihn in das Examples Verzeichnis. Ein erster Make dort gab Fehler, er findent den Compiler nicht. Ich habe dann im Makefile das hier erweitert von DEVC_PREFIX=m68k-elf-auf DEVC_PREFIX=/mnt/c/SysGCC/m68k-elf/bin/m68k-elf-Ich dachte mir aber, das wird nicht optimal sein... Der nächste Make lieferte dann das da... redo@pc:/mnt/c/SysGCC/m68k-elf/Examples/Jados_test$ makeIch hab dann das Forum durchsucht, bei verschiedenen Quellen recherchiert, aber nichts gefunden, was mich erhellt hätte. Könnt ihr mir sagen, was vor oder nach der Installation gemäß https://github.com/avg67/nkc/wiki/GCC-Crosscompile-Framework-f%C3%BCr-den-NKC zu tun ist? Wie gesagt, habe mich für die Bash mit WSL entschieden. Besten Dank, Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
Posts: 236 | Member since: June 2025 | IP address: not saved | |
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on November 18, 2025 02:14 PM (#55)
Quote
PM E-mail
Hallo,
bei dir fehlt wahrscheinlich der Suchpfad auf das SysGCC-bin Verzeichnis: Ich hab hier MSYS installiert, es geht aber auch Cygwin o.ä. Bei mir im MSYS .bashrc: export PATH="$PATH:/c/msys32/mingw32/bin/:/c/SysGCC/m68k-elf/bin" Mit der Unix Bash unter Windows (die du offenbar da hast) hab ich keine Erfahrungen Wenn du m68k-elf-gcc --version eingibst muss folgendes kommen ansonsten stimmt noch was nicht. $ m68k-elf-gcc --version m68k-elf-gcc.exe (GCC) 4.8.0 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on November 18, 2025 05:14 PM (#56)
Quote
PM E-mail HP
Hallo Andi, gesagt...getan..
Ich habe WSL deinstalliert, wollte es aber nach der Beschreibung im github richtig machen, da Du es dort als Deine Shell beschrieben hattest. Kein Problem, WSL runter MSYS2 drauf, aber als 64-Bit Version. Pfad zum GCC Bin eingestellt und in .bashrc gespeichert. GCC gestartet: Soweit ok... dann Make für den Jados_test nochmal aufgerufen, aber mit make --debug=b Das sieht dann so aus: Was könnte das sein? VG Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
Posts: 236 | Member since: June 2025 | IP address: not saved | |
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on November 18, 2025 06:29 PM (#57)
Quote
PM E-mail HP
Hallo Andi, noch eine Bemerkung. Das ist jetzt natürlich ein neues Kapitel für mich und eine ganz andere Herausforderung. Ich will das aber lernen, denke ich doch an das Schachprojekt, dass ich gerne mit dem NKC verwirklichen möchte.
Wenn ich aber hier einen Blumentopf gewinnen möchte, komme ich wohl nicht da herum, mich in diese Werkzeuge, so wie jetzt hier mit Make, dem gcc und den Libs einzuarbeiten. Es wohl ein bisschen so, dass man zum Autofahren eben auch erst ein Auto bauen muss ;-) Ich denke, ich darf Dich da nicht quälen mit meinem Anfängerfragen, bin aber doch glücklich über Hilfe. Mein Plan ist halt, ein lauffähiges Grundsystem zu haben, in dem ich mich dann entwickeln kann und mit einfachen C-Programmen für den 68k starte, die erfolgreich kompiliere und auf die beiden NKC's zum Testen übertragen kann. Dies wollte ich nur nochmal anmerken. Danke für Deine und eure Hilfe. VG Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
Posts: 236 | Member since: June 2025 | IP address: not saved | |
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on November 18, 2025 06:48 PM (#58)
Quote
PM E-mail
Hallo Jürgen,
hmm, check nochmals das makefile und stell sicher dass das wirklich das "original file" ist von meinem github. Du musst sehr aufpassen beim editieren des makefiles mit den tabs und spaces. Ah ich vermute mal da stimmt der suchpfad noch immer nicht. Ich denke da fehlt der Pfad auf die MSYS Tools. der Pfad bei mir ist der folgende im .bashrc file: export PATH="$PATH:/c/msys32/mingw32/bin/:/c/SysGCC/m68k-elf/bin" Hab gerade das Framework testhalber auf einen neuen PC kopiert - ohne Probleme |
Posts: 522 | Member since: May 2021 | IP address: not saved | |
|
redo Stammgast ![]() ![]() ID # 245 |
Posted on November 18, 2025 09:53 PM (#59)
Quote
PM E-mail HP
Hallo Andi,
hab ich gemacht und den Makefile nochmal für Jados_test platziert. Diese Datei crt0.c liegt im korrekten Pfad und kann auch mit einem manuellen Aufruf des gcc angefasst werden. Aber nicht innerhalb des Makefiles. Könnte da ein Rechteproblem sein? Diese mkdir's im createdirs werden auch nicht ausgeführt, stellte ich fest. Das ist schon verflixt..... Mit pacman installiere ich jetzt noch für MSYS2 die Tools... laut Webseite von denen... VG Jürgen ----------------------- Nach vielen Jahren ging es mit dem NKC wieder los.... Sehr spannend! |
Posts: 236 | Member since: June 2025 | IP address: not saved | |
|
andi Voll in Gange ![]() ![]() ![]() ID # 213 |
Posted on November 18, 2025 10:50 PM (#60)
Quote
PM E-mail
Hallo,
Hast du das MSYS Terminal geschlossen und neu göffnet nach dem update des Pfades? Wenn ja gib mal "echo $PATH" ein um den Suchpfad auszugeben. Er findet bei dir offenbar die Unix shell tools ( rm, cp, mkdir,...) nicht. Die werden beim compile aufgerufen |
Posts: 522 | Member since: May 2021 | IP address: not saved |
| https://nkcforum.de | Board rules | Privacy policy
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Site created in 0.077736 seconds
Processed 17 files
gzip compression enabled
2490.48 KiB memory usage




Posted on December 31, 2022




