NXT firmware ändern

Die Firmware liegt als Sourecode vor und das Entwicklungstool ist frei verfügbar.

  • IAR Workbench installieren (spezielle Version für den NXT)
  • Lego-Firmware-Sourcen in ein Verzeichnis kopieren (Ich habe Version 1.29 als Basis)
  • Workspace öffnen. Die Datei LMS_ARM.eww liegt in den Sourcen im Ordner „Tools“
  • Ausgabeformat auf „Bin_Output“ einstellen
  • Manche stellen Projekteigenschaften -> General Options -> Library Configuration auf „normal“ ein. Das habe ich nicht gemacht.
  • Projekteigenschaften -> Linker -> Extra Output : Hier sollte der Haken bei „Generate extra output file“ gesetzt sein. Dateiname mit Extension „.a79“
  • Projekt Bauen mit „Make“
  • LSM_ARM.a79 inLSM_ARM.rfw umbenennen und fertig ist die Firmware

Wenn man mit den aktuellen Labviewplugins arbeitet, funktioniert diese Version so nicht, da die Firmware als veraltet erkannt wird. Dazu muss man im Quelltext (c_loader.iom) die Version auf 1.31 setzen:

#define FIRMWAREVERSION 0x011F //1.31

Als Anfang kann man z.B. die angezeigten Texte ändern, wie z.B. in Dateien mit der Endung „.rms“. Dies ist etwas mühsam, da man die Hex-Werte der einzelnen Zeichen eingeben muss. z.B.

...
//My_Files

0x00,0x00,0x00,0x11, // 0x00000011
0x01,0x04,0x00,0x00, // 0x01040000
0x00,0x00,0x01,0x01, // 0 ,0 ,1 ,1
0x4D,0x79,0x20,0x46,0x69,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3B, // 3B

...