Ebenfalls hallo zusammen,
Zitat von Sigg im Beitrag #85
Hallo zusammen
Nachdem ich nun genug habe im alten srcpd C-Code Speicherfehler zu suchen habe ich mich entschieden ein srcpd in RUST zu schreiben.
Eine erste brauchbare Version liegt hier: https://siggsoftware.ch/wordpress/srcpd-in-rust/
Gruss
zwar habe ich von Rust viel Gutes gelesen, aber ich werde trotzdem den basrcpd nicht von C auf Rust umstellen: ich bin am basrcpd jetzt seit sieben Jahren dran und entdecke immer noch Probleme im über zwanzig Jahre alten Original-srcpd wie ungeprüfte Parameter-Übernahme vom SRCP oder dass bei "TERM GL" (LOK beenden) die Lok zwar aus der Verwaltung genommen wird aber im Refresh bleibt. Kurzum, eine Umstellung auf Rust um eventuelle Speicher-Probleme zu eliminieren will ich mir nicht auch noch ans Bein binden.
Dagegen teste ich mit neuerer SW-Umgebung, um für die Zukunft gerüstet zu sein, z.Zt. mit Armbian 24.5.0 Bookworm mit Kernel 6.6.xx. Das sieht recht gut aus und bot bisher keine echten Überraschungen:
- der CAN Device Tree Overlay hat immer noch die seit mindestens drei Jahren fehlerhaften Symbole drin (Issue steht jetzt zwar auf closed, ist aber noch nicht eingearbeitet)
- UART7 wird per default aktiviert und es wird kein device tree overlay zum Deaktivieren mitgeliefert, muss man selber basteln
- die beiden nicht offiziellen Treiber (CAN mit presume-ack und Lokkarte) brauchen kleinere Anpassungen an Kernel
Das wars aber auch schon. Damit geht der basrcpd über can2lan, sowie ms1relay, maecanserver, railcontrol, und die z21-App.
Naja, die Treiber-Makefiles musste ich noch anpassen, weil Armbian die Kernel Objects mal komprimiert will und mal nicht, und die Schlüsselnamen dafür in der Kernel-Konfig sich auch jährlich ändern; "CONFIG_MODULE_COMPRESS_NONE=y" für unkomprimiert hatte meine Textauswertung im Makefile überfordert.
Alle Anpassungen zum Betrieb mit Armbian gibt es unter
https://github.com/mue473/bapienvLetzlich muste ich noch feststellen, dass die Armbians jetzt öfters den Kernel erneuern und dies jedes Mal ein Neuerstellen meiner Zusatztreiber erfordert, so dass da eine Automatisierung hilfreich wäre. Die Arbeit geht also nicht aus.
Gruß
Rainer